为包含其他对象的单个类编写单元测试时,最好的使用方法是什么
模拟对象以避免依赖于其他类的测试。
示例 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 仅用作委托时,有没有办法测试它?