我有以下代码片段来简单地代表该问题:
public class C2 {
public String m1() {
return "hello";
}
public String m2() {
return this.m1();
}
public static void main(String[] args) {
C2 c2 = mock(C2.class);
Mockito.when(c2.m1()).thenReturn("world");
System.out.println(c2.m2()); -- mockito returned null instead of "world"
我期望mockito返回的是“world”而不是null。是我错误地使用了mockito API吗?如果是这样,实现我期望的正确方法是什么?
模拟上所有方法的默认返回值为 null(或基本类型的等效默认值)。如果您希望
m2()
返回一个值,您将需要对调用进行存根:
when(c2.m2()).thenReturn("world");
当然,在真正的测试中,你永远不会直接调用模拟上的方法。