以下のコード行については、mockito.whenでヌルポインタ例外を取得しています。エンティティマネージャ用のJunitテストケース
when(entityManager.createQuery(any(String.class)).setParameter(any(String.class), any(String.class)).getSingleResult()).thenReturn("2");
モックエンティティマネージャしようとし、これを解決するための任意のヘルプ
@Mock private EntityManager entityManager;
として宣言されていますか?
完全なテストクラスは
import main.java.com.as.dao.ASDAOImpl;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.test.util.ReflectionTestUtils;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@RunWith(MockitoJUnitRunner.class)
public class ASDAOImplTest
{
@InjectMocks
ASDAOImpl asdaoImpl=new ASDAOImpl();
@Mock
private EntityManager entityManager;
@Before
public void setUp()
{
ReflectionTestUtils.setField(asdaoImpl,"capLimit", 1);
}
@Test
@Ignore
public void validateCappingTest()
{
when(entityManager.createQuery(any(String.class)).setParameter(any(String.class), any(String.class)).getSingleResult()).thenReturn("2");
asdaoImpl.validateCapping("2");
}
}
が追加されました。問題はまだあります。 – Jill
ああ、私の悪い、答えを修正しました。 –