2017-05-20 18 views
0

私のプロジェクトの単体テストを書くのですが、データベースで動作するメソッドを呼び出すときに問題が発生します。現在、私は、ユーザーの関心のある出版物のリストを取得する方法を確認したいが、私はNullPointerExceptionを取得しています:永続メソッドのテスト - JUnit

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();とライン上にあります。私は間違ったやり方をしていますか?

答えて

0

私は解決策を見つけました。だから問題はコンストラクタにありました - それは@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); 
    } 
}