У меня есть класс, как показано ниже, и мне нужно протестировать RunMethod. Проблема в том, что ExternalClass требует, чтобы какое-то приложение выполнялось на стороне сервера (приложение, предоставляющее внешние dll). В моей среде разработчиков есть это приложение, но в моей среде для тестирования нет. Мой вопрос в том, как подделать/подделать ExternalClass в UnitTests, чтобы не проверить, существует ли приложение (тест всегда сбой в env без этого внешнего приложения)? Этот класс не важен в тестах, но запускается автоматически, если я запускаю RunMethod.Шлем/поддельный объект с использованием внешнего приложения
public class MyExampleClass : ISomeInterface
{
private static ExternalClass = new ExternalClass(string someParam);
public object RunMethod()
{
/* Actuall code hear, doesn't matter */
/* few unimportant (from the view point of tester) operation in ExternalClass (object loggin etc.) */
return someVar;
}
}
Спасибо за ответ. Но, что, если все методы в моем ** ExternalClass ** недействительны (возвращают nothig, просто делают некоторые материалы журнала) и используют внешнюю сборку (для этой регистрации), которую я не могу предоставить на своем тестовом сервере? –
@JamesTheEvangelist изменяет метод, чтобы ничего не делать: 'ShimExternalClass.AllInstances.Log =() => {};' –
Я просто пытаюсь что-то вроде этого: 'ShimExternalClass.AllInstances.SomeMethod = (null);' и я по-прежнему возникает ошибка: 'Тип 'some lib' определен в сборке, на которую не ссылаются. Вы должны добавить ссылку на сборку сборки. ' –