如何在测试之间重置

新手上路,请多包涵

我有一个测试班

@RunWith(SpringRunner.class)
@DataJpaTest

我有两个测试。在每次测试中,我都执行相同的操作,持久化对象。只有查找调用不同。

如果我一起运行两个测试,它们会失败,但如果我一个接一个地运行测试,它们就会成功。

每次测试之间没有重置。怎么做?只是每次测试中对存储库的调用不同。

 @Test
public void findTopByCommerceCommerceIdOrderByEntryTimeDesc() {

    Long commerceId = 1L;

    Commerce commerce = new Commerce();
    commerce.setName("test");
    this.entityManager.persist(commerce);

    Member member = new Member();
    member.setCommerce(commerce);
    member.setMan(true);
    member.setName("bob binette");

    this.entityManager.persist(member);

    Visit visit1 = new Visit();
    visit1.setCommerce(commerce);

    visit1.setMember(member);
    visit1.setEntryTime(LocalDateTime.of(LocalDate.now(), LocalTime.now()));

    Visit visit2 = new Visit();
    visit2.setCommerce(commerce);

    visit2.setMember(member);
    visit2.setEntryTime(LocalDateTime.of(LocalDate.now().minusDays(2), LocalTime.now()));

    this.entityManager.persist(visit1);
    this.entityManager.persist(visit2);

    Visit visit = visitRepository.findTopByCommerceCommerceIdOrderByEntryTimeDesc(commerceId);

    assertEquals(visit.getVisitId(), Long.valueOf("1"));

}

编辑

我把所有的代码:http: //pastebin.com/M9w9hEYQ

原文由 robert trudel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 394
1 个回答

添加 @DirtiesContext 注释,但为其提供 AFTER_EACH_TEST_METHOD classMode

 @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)

原文由 HPacquee 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题