gpt4 book ai didi

java - 如何在测试之间重置

转载 作者:IT老高 更新时间:2023-10-28 13:47:28 25 4
gpt4 key购买 nike

我有一个测试类

@RunWith(SpringRunner.class)
@DataJpaTest

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

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

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

@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

最佳答案

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

@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)

关于java - 如何在测试之间重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41092716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com