java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException
假设有如下三个接口
interface A {}
interface B {
A getA();
}
interface C {
B getB();
default boolean foo(C c) {
return c.getB().getA().equals(c.getB().getA());
}
default int bar(C c) {
if (foo(c)) {
return 1;
} else {
return 0;
}
}
}
我想用下面的测试来测试方法bar(C c)
@Test
void test() {
C c = spy(C.class);
C cc = mock(C.class);
when(c.foo(cc)).thenReturn(true);
assertEquals(1, c.bar(cc));
}
但是在使用foo
方法时得到一个NullPointerException
。
错误消息如下
java.lang.NullPointerException
at com.example.C.foo
at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
我很困惑出了什么问题
共 (0) 个答案