我正在为我的项目编写单元测试,但是在调用与数据库一起工作的方法时会遇到一些困难。当前,我想检查一种获取用户感兴趣的出版物列表的方法,但是我正在得到NullPointerException
:
public class TestPubManager {
private PubManager pFunc;
@Before
public void initialize() {
EntityManager manager = PersistenceManager.INSTANCE.getEntityManager();
em.getTransaction().begin();
PubManager pManager = new PubManager(manager);
}
@Test
public void testGetInterestPubs() {
int res = pManager.getInterestPubs(2).size();
assertEquals(20, res);
}
}
NullPointerException与
int res = pManager.getInterestPubs(2).size();
在一起。我做错了什么? 最佳答案
我找到了解决方案。所以问题出在构造函数中-它不是在@Before
批注中初始化,但是当我将其放入测试中时,一切工作正常。
public class TestPubManager {
private PubManager pFunc;
EntityManager manager = PersistenceManager.INSTANCE.getEntityManager();
@Before
public void initialize() {
em.getTransaction().begin();
}
@Test
public void testGetInterestPubs() {
PubManager pManager = new PubManager(manager);
int res = pManager.getInterestPubs(2).size();
assertEquals(20, res);
}
}