【发布时间】:2018-12-20 13:35:57
【问题描述】:
有人可以帮我写一个 jpql 查询的单元测试用例吗?我是新来的。
这是要测试的类。
@Inject
private Log log;
@PersistenceContext(name = Configuration.PERSISTENT_CONTEXT)
private EntityManager em;
public List<Vehicle> getData() {
List<Vehicle> resultList = new ArrayList<>();
try {
String sql = "SELECT v FROM Vehicle v JOIN v.car c WHERE c.carType = 'BMW'";
Query query = em.createQuery(sql, Vehicle.class);
resultList = query.getResultList();
if(resultList == null){
log.error("List is empty or null");
return null;
}
} catch (IllegalArgumentException ex) {
log.info(ex.getMessage());
log.trace(ex.getCause());
}
return resultList;
}
目前我写的JUnit类如下:
@InjectMocks
private FinderManager classUnderTest;
@Mock
private EntityManager emMock;
@Mock
private Query query;
@Mock
private Vehicle vehicle;
@Mock
private Car car;
@Test
public void testMethod(){
List<Vehicle> resultList = new ArrayList<>();
Mockito.when(emMock.createQuery(Mockito.any(String.class)))
.thenReturn(query);
Mockito.when(query.getResultList()).thenReturn(resultList);
classUnderTest.getData();
}
任何帮助将不胜感激。谢谢! :)
【问题讨论】:
标签: java unit-testing junit mockito hibernate-entitymanager