我有一个实现接口 I 的单例类 S。单例类有一个方法 A,该方法又调用方法 B。我必须测试方法 A。
这是我的单身课程
public class S implements I{
private static S INSTANCE = new S();
public static I getInstance(){
return INSTANCE;
}
public String methodA(){
methodB();
}
}
这就是我的方法在测试类中的样子。
public void testMethodA(){
S so = S.getInstance();
S spy = Mockito.spy(so);
Mockito.doReturn(something).when(spy).methodB(); // I have to cut the dependency of this method B, hence will stub this
String exp_value = 'X';
assertEquals(exp_value,spy.methodA);
}
问题是,实际方法 B 被称为存根的 instsead,因此我的测试失败。任何人都可以帮助并让我知道我是否在这里做错了什么。