大佬教程收集整理的这篇文章主要介绍了java – 如何使用“Spring Data JPA”规范单元测试方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在玩org.springframework.data.jpa.domain.Specifications,它只是一个基本的搜索:
public Optional<>
这实际上工作正常,但我想为这个方法编写单元测试,我无法弄清楚如何检查传递给我的articleRepository.findAll()的规范
目前我的单元测试看起来像:
@Test
public void rechercheArticle_okTousCriteres() throws FacturationserviceException {
String code = "code";
String libelle = "libelle";
List<>(); article="" a1="new" article();="" articles.add(a1);="" mockito.when(articlerepository.findall(mockito.any(specifications.class))).thenreturn(articles);="">>();><>
任何的想法?
如果你想像我一样做,我建议你用集成测试测试规范的正确性,其余的,只要调用正确的方法.
例如:
public class CdrSpecs {
public Specification
然后,您对此方法进行了集成测试,该测试将测试该方法是否正确:
@RunWith(SpringRunner.class)
@DataJpaTest
@sql("/cdr-test-data.sql")
public class CdrIntegrationTest {
@Autowired
private CdrRepository cdrRepository;
private CdrSpecs specs = new CdrSpecs();
@Test
public void findByPeriod() throws Exception {
LocaldatetiR_862_11845@e today = LocaldatetiR_862_11845@e.Now();
LocaldatetiR_862_11845@e firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
LocaldatetiR_862_11845@e lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
List
现在,当您想要对其他组件进行单元测试时,您可以像这样进行测试,例如:
@RunWith(JUnit4.class)
public class CdrSearchserviCETest {
@mock
private CdrSpecs specs;
@mock
private CdrRepository repo;
private CdrSearchservice searchservice;
@Before
public void setUp() throws Exception {
initmocks(this);
searchservice = new CdrSearchservice(repo,specs);
}
@Test
public void testSearch() throws Exception {
// some code here that interact with searchservice
verify(specs).calledbetween(any(LocaldatetiR_862_11845@e.class),any(LocaldatetiR_862_11845@e.class));
// and you can verify any other method of specs that should have been called
}
当然,在服务内部,您仍然可以使用规范类的where和static方法.
我希望这可以帮到你.
以上是大佬教程为你收集整理的java – 如何使用“Spring Data JPA”规范单元测试方法全部内容,希望文章能够帮你解决java – 如何使用“Spring Data JPA”规范单元测试方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。