最初は、EntityManager を使用して H2 インメモリ データベースにデータを永続化しようとしています。永続化は成功です。しかし、後で3つの異なるテストケースにデータをフェッチしようとすると、最初のテストケースはフェッチに成功し、2番目と3番目のテストケースはnullポインター例外をスローしています。ここで私のコードのスケルトンを示します。理解するのに役立ちます。
Class Testclass
{
@PersistenContext
EntityManager em;
@Transactional
@Before
public void beforeEachTest
{
ClassName obj=new ClassName();
obj.setName("name");
em.persist(obj);
}
@Test
@Transactional
public void testMethod1()
{
//fetching values
obj.getName();
}
@Test
@Transactional
public void testMethod2()
{
obj.getName();
}
@Test
@Transactional
public void testMethod3()
{
obj.getName();
}
}
上記のスケルトン コードでは、'beforeEachTest' メソッドでデータを永続化しようとしています。それは成功です。次に、3 つのテスト メソッドすべてでデータを取得しようとしています。しかし、最初の 1 つは成功し、2 番目と 3 番目のテスト メソッドは失敗し、nullPointerException を返します。ここから抜け出すための解決策を教えてください。