【发布时间】:2020-08-26 05:52:12
【问题描述】:
我正在使用 Mockito 和 JUnit 编写单元测试用例。但是在运行测试时得到NullPointerException。在调试时,我知道 Mockito on method: when().thenReturn() 没有返回依赖方法的值,而调用程序正在调用这些方法来获取结果。
下面是我用来了解代码结构的虚拟代码:
class B {
public C getValue() {
return C;
}
}
class A {
public D getAns(String q1, String q2) {
return B.getValue().map(mapper::toD); //null pointer exception start here
}
}
@RunWith(MockitoJunitrunner.test)
class TestA {
@InjectMock
A a;
@Mock
B b;
C c;
init() {
when(b.getValue()).thenReturn(c);
}
@Test
public void getA() {
D ans=A.getAns(q1,q2); //getting null pointer exception here
AssertNotNull(ans);
}
}
【问题讨论】:
-
使用@Mock 到C c
-
没有任何东西可以注入 A 并且看起来
getValue()是一个静态方法。如果不是这种情况,请添加代表您的情况的代码。 -
getValue() 不是静态的。我的代码和上面的代码一模一样
标签: java spring junit mockito springmockito