我正在为我的项目编写单元测试,但是在调用与数据库一起工作的方法时会遇到一些困难。当前,我想检查一种获取用户感兴趣的出版物列表的方法,但是我正在得到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);
    }
}

09-10 02:57