假设我有一个类的方法:
public String method1(someparameters) {
//Calls methods of a different objects
result2 = object2.method2(someparams )
result3 = object3.method3(someparams)
// Does bunch of work in method1
...................
...................
return result
}
object2.method2 和 object3.method3 不需要被模拟。 换句话说,如果传递了正确的参数,它们就可以完成工作并返回结果。我的问题:在为 method1 编写单元测试时,我是否强制需要模拟 object2 和 object3 的调用?换句话说,在单元测试中是否必须进行模拟?
最佳答案
不,使用模拟框架不是强制性的,但可能会更方便。无论如何,最好的方法是将 object2 和 object3 作为接口(interface),并通过类的构造函数设置它们的实现。通过这种方式,您可以将简单的 stub 实现用于测试目的。接口(interface)中的方法过多就是要考虑是否违反了单一责任原则。
关于java - junit 没有任何模拟框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183556/