Mam klasy testowejJak zresetować między testami
@RunWith(SpringRunner.class)
@DataJpaTest
mam dwa testy. W każdym teście wykonuję tę samą operację, utrzymuję obiekt. Tylko wywołanie find jest inne.
Jeśli oba testy wykonam razem, to się nie powieść, ale jeśli wykonuję test jeden po drugim, są skuteczne.
Po każdym teście nie ma resetowania. Jak to zrobić? Tylko wywołanie repozytorium jest inne w każdym teście.
@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"));
}
Edit
i umieścić cały kod: http://pastebin.com/M9w9hEYQ
Użyj JUnit ['@ Before'] (http://junit.sourceforge.net/javadoc/org/junit/Before.html) i [' @ After'] (http://junit.sourceforge.net/ javadoc/org/junit/After.html)? – manish
Wykonując testy '@ Transactional'. –
Testy 'DataJpaTest' są domyślnie transakcyjne Martijn. Coś innego dzieje się, czego nie widzimy: powinno to działać po wyjęciu z pudełka. –