При написании модульных тестов для одного класса, содержащего другие объекты, что лучше всего использовать
имитировать объекты, чтобы избежать тестов, зависящих от других классов.
Пример 1:
public class MyClass
{
protected MyObject _obj;
public MyClass()
{
_obj = new MyObject();
}
public object DoSomething()
{
//some work
_obj.MethodCall();
//more work;
return result;
}
}
Я бы предпочел не раскрывать защищенное значение для создания модульного теста кода. Класс-оболочка будет
работают для тестирования, но есть ли способ лучше?
Пример 2:
public class MyClass
{
public object DoSomething()
{
//some work
MyObject obj = new obj(parameters);
_obj.MethodCall(Method1);
//more work;
return result;
}
public int Method1()
{ ... }
}
Подобно приведенному выше примеру, но объект ojbect создается в вызываемом мной методе.
Пример 3:
public class MyClass
{
public object DoSomething()
{
//some work
obj.MethodCall(Method1);
//more work;
return result;
}
public int MethodA()
{ ... }
}
Есть ли способ протестировать MethodA, когда он используется только в качестве делегата?