【发布时间】:2012-08-13 11:15:42
【问题描述】:
为什么要使用
创建模拟对象MyObject myOb = Mockito.mock(MyObject.class);
什么时候可以改用:
MyObject myOb = new MyObject();
public class MyObject(){
private String str;
//getters and setters
}
如果上面的对象变得更复杂并且它与其他对象有依赖关系,我还需要为这些对象创建模拟对象。因此,如果需要设置所有成员来测试对象,为什么不直接创建对象而不是使用框架模拟它呢?
【问题讨论】:
-
因为code.google.com/p/mockito 描述了 Mockito 在普通对象之上所做的事情。
-
因为模拟框架提供了比普通对象更多的功能、表现力、存根、验证、回调等。有了这些,在单元测试中你现在更关注协作者之间的交互,这意味着你可以去进一步在不同的场景下测试不同的执行路径,即它有助于覆盖你的代码。