我正在尝试为类A中的方法创建JUnit测试,该方法创建类B的实例。由于我想隔离该方法的行为,因此我想用更简单的方法覆盖测试套件中B的方法可以用于测试A。
我尝试使用Mockito的Spy这样做,但是据我所知,它仅允许在方法调用时返回静态值,但是在考虑传递的参数的同时,我需要用更简单的外部逻辑替换复杂的外部逻辑。 / p>
解决此问题的最佳方法是什么?
答案 0 :(得分:1)
如果我答对了,代码示例可能看起来像这样
public class A {
public T doSth(){
String result = new B().callMethod();
}
}
要使A更具可测试性,如果您能够修改源代码,则以下方法可能会有用。
public class A {
private MyInterface b;
public A(MyInterface b){
this.b = b;
}
public T doSth(){
String result = b.callMethod();
}
}
欢呼