我想对这个SQL查询的结果进行建模:
public List<RiskFilters> findRiskFiltersByTerminalIdAndType(int terminal_id, String filter_class) {
String hql = "....";
TypedQuery<RiskFilters> query = entityManager.createQuery(hql, RiskFilters.class)....;
List<RiskFilters> riskFilters = query.getResultList();
return riskFilters;
}
我尝试了以下样机配置:
List<RiskFilters> riskFiltersList = new ArrayList<RiskFilters>();
riskFiltersList.add(new RiskFilters());
when(riskFilterService.findRiskFiltersByTerminalIdAndType(anyInt(), anyString())).thenReturn(riskFiltersList);
但是我在这里得到了NPE:
List<RiskFilters> filter_list = riskFilterService.findRiskFiltersByTerminalIdAndType(11, "BinCountryCheckFilter");
看起来像模拟的参数是不正确的。您知道如何正确实施吗?
答案 0 :(得分:0)
我认为需要given(...).willReturn(...)
。
答案 1 :(得分:0)
似乎没有模拟RiskFilterService,在测试类中,您必须使用@Mock注释RiskFilterService,使用@InjectMocks测试该类,并确保您初始化所有模拟,例如https://www.baeldung.com/mockito-junit-5-extension和{{3 }}