为什么我会收到 NullPointerException?
这是我的代码:
@Stateless
@LocalBean
class SomeDao {
@PersistenceContext(unitName = "some-value")
private EntityManager entityManager;
public EntityManager getEntityManager() {
return this.entityManager;
}
public long getNextId() {
long someLongValue = getEntityManager().someMethod();
//some code
return someLongValue;
}
}
class SomeTest() {
@Spy
private SomeDao dao = new SomeDao();
@Test
public void someTestMethod() {
MockitoAnnotations.initMocks(this);
when(dao.getNextId()).thenReturn(10L);
}
}
当我运行测试时,出现以下异常: java.lang.NullPointerException 在 com.some.api.some.package.dao.SomeDao.getNextId(SomeDao.java:13) ...
稍后我想添加新的类进行模拟,并且 getNextId 方法将在其中一个类中调用。
谢谢!
最佳答案
MockitoAnnotations.initMocks(this)在 JUnit 中应该在测试方法之前执行
@Before public void initMocks() { MockitoAnnotations.initMocks(this); }
或者在 TestNG 中使用 @BeforeMethod
MockitoAnnotations.initMocks(this)
method has to called to initialize annotated fields.In above example, initMocks() is called in @Before (JUnit4) method of test's base class.
关于java - 为什么我在模拟时会收到 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54399846/