-1
私は、Java永続クエリの結果セットを模擬するためにMockitoを使用しています:TypedQueryでMockitoヌルポインタ?
コードが嘲笑されている:
public void queryMethod(String name){
List<Person> result = persistence.entityManager().createQuery(
"Select p from Person p +
" where p.name= :uniqueId" , Person.class)
.setParameter("name", name)
.getResultList();
}
テストコード:
String name = "anyName";
Person person = mock(Person.class);
List<Person> personList = new ArrayList<>();
personList.add(person);
TypedQuery query = mock(TypedQuery.class);
when(entityManager.createQuery(anyString(), Matchers.<Class<Object>>anyObject())).thenReturn(query);
when(query.setParameter(1, name)).thenReturn(query);
when(query.getResultList()).thenReturn(personList);
を私は取得しています行のヌルポインタエラー:
List<Person> result = persistence.entityManager().createQuery(
この原因は何ですか?
可能な重複:その後、あなたは次のようにこの方法を模擬することができるようになります
を?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – GhostCat
@GhostCatどういう意味ですか?説明してください – java123999
私は少し速すぎたかもしれません。しかし、ポイントは:その1行には、NPEを与えることができる少なくとも2つのオブジェクトがあります。 A)*永続性* B)entityManager()の呼び出しの結果。C)次にcreateQuery()の結果。長い話をすると、それぞれの呼び出しがヌルでないものを返すことを確認する必要があります。 – GhostCat