У меня есть небольшая проблема с пониманием того, что и что нельзя сделать с помощью FakeItEasy. Предположим, у меня есть классКак я могу подделать класс, используемый insite SUT, используя FakeItEasy
public class ToBeTested{
public bool MethodToBeTested(){
SomeDependentClass dependentClass = new SomeDependentClass();
var result = dependentClass.DoSomething();
if(result) return "Something was true";
return "Something was false";
}
}
И я что-то вроде ниже фальсифицировать зависимого класса
var fakedDepClass = A.Fake<DependentClass>();
A.CallTo(fakedDepClass).WithReturnType<bool>().Returns(true);
Как я могу использовать этот fakedDepClass когда я тестирование MethodToBeTested. Если DependentClass был передан как аргумент, то я могу передать свой fakedDepClass, но в моем случае это не так (также это устаревший код, который я не контролирую).
Любые идеи?
Благодаря K
Как я уже говорил, я пытаюсь написать несколько тестов по устаревшему коду, у меня нет роскоши менять SUT. Я взглянул на TypeMock, и это дает мне возможность Fake всех экземпляров определенного класса (я тестировал его, и он работает отлично). Спасибо за ваш ответ. –
@ KarthikBalasubramanian, почему вы не можете изменить устаревший код? –
Унаследованный код находится в производстве, используемом тонной частью других приложений. В настоящее время нет тестов, написанных против него. –