鉴于以下方法想要使用Junit使用MOckit进行测试,但我尝试了
when(productDataDao.findAll(specObj, PagebleObj)).thanReturn(DummyMOckObj);
但这不行。有没有办法通过Mockito方法传递Pagable对象来测试匿名类测试?
public Page<Product> SearchData(Pageable pageable , ProductDTO proDto) {
Page<Product> products= productDataDao.findAll(new Specification<Product>() {
@Override
public Predicate toPredicate(Root<Product> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> predicates = new ArrayList<>();
if(null != proDto.getId() && !proDto.getId().isEmpty()) {
predicates.add(cb.like(root.get("id"), "%" +proData.getId().trim()) + "%"));
}
if(null != proData.getName() && !proData.getName().isEmpty()) {
predicates.add(cb.equal(root.get("name"), proData.getName()));
}
return cb.and(predicates.toArray(new Predicate[0]));
predicates.toArray(new Predicate[0]) : null);
}
}, pageable);
return products;
}
return null;
}
答案 0 :(得分:0)
尝试这样的事情:
when(productDataDao.findAll(
ArgumentMatchers.<Specification<Product>>any(),
eq(PagebleObj)))
.thanReturn(DummyMOckObj);
您还应该在测试实例中注入productDataDao
模拟对象。