Я хочу написать тест Junit для моего дао, но у меня проблема. Вот метод, который я хочу проверить:
public boolean boo(final String param) {
final Query query = this.entityManager.createNamedQuery("queryName");
query.setParameter(1, param);
boolean isExists = false;
if(query.getResultList().size() != 0) {
isExists = true;
}
return isExists;
}
Проблема с этим методом:
query.setParameter(1, param);
Когда я пишу что-то вроде:
@Test
public void test() {
when(entityManager.createNamedQuery(queryName)).thenReturn(query);
when(query.getResultList()).thenReturn(new ArrayList());
//when(query.setParameter(1,project.getName())).thenCallRealMethod();
projectDao.boo(name);
}
Запрос и entityManager являются поддельными.
У меня есть NPE, и это не удивительно, и я не могу вызвать метод, потому что запрос и интерфейс.
Так может кто-нибудь сказать мне лучший способ установить параметры в NamedQueries во время тестирования?