Tôi có một lớp thử nghiệmLàm thế nào để thiết lập lại giữa các xét nghiệm
@RunWith(SpringRunner.class)
@DataJpaTest
Tôi có hai bài kiểm tra. Trong mọi thử nghiệm, tôi thực hiện thao tác tương tự, vẫn tồn tại đối tượng. Chỉ có cuộc gọi tìm thấy khác nhau.
Nếu tôi chạy cả hai kiểm tra cùng nhau, chúng sẽ thất bại nhưng nếu tôi chạy thử nghiệm cái khác thì chúng thành công.
Không có đặt lại giữa mỗi bài kiểm tra. Làm thế nào để làm điều đó? Chỉ cuộc gọi đến kho lưu trữ là khác nhau trong mỗi bài kiểm tra.
@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"));
}
Sửa
tôi đặt tất cả các mã: http://pastebin.com/M9w9hEYQ
Sử dụng JUnit ['@ Before'] (http://junit.sourceforge.net/javadoc/org/junit/Before.html) và [' @ After'] (http://junit.sourceforge.net/ javadoc/org/junit/After.html)? – manish
Bằng cách thực hiện các thử nghiệm của bạn '@ Transactional'. –
Kiểm tra 'DataJpaTest' được giao dịch theo mặc định Martijn. Một cái gì đó khác đang xảy ra mà chúng ta không thấy: nó sẽ làm việc ra khỏi hộp. –