java阻止函数在mocking时在构造函数中被调用,Mockito?
我有一个类,当被构造时,它不能调用某个方法
public class ClassA() {
@NonNull
private ClassB b;
public ClassA() {
this.b = (new ClassC()).mymethod();
}
}
我需要在不调用ClassC()的情况下测试ClassA。mymethod(),因为调用它将引发错误。这样做的最佳方法是什么?我用@Mock ClassC为ClassA尝试了@injectmock,但它给了我null异常
# 1 楼答案
你必须重构你的类,使其更易于测试。下面截取的代码中的另外两个构造函数可用于ClassC或ClassB的模拟测试:
示例测试用例:
# 2 楼答案
可以使用
CALLS_REAL_METHODS
来避免调用ClassA
的构造函数