Я пробовал следующие шаги, но, к сожалению, мне не повезло:
Метод номер 1 всегда терпит неудачу, потому что ожидаемый размер 1, но его 2 -> тест запускается индивидуально, проходит успешно, но когда я запускаю все тесты приложения, то именно это один из них не работает
1) Пометьте каждый метод @DirtiesContext(methodMode = DirtiesContext.MethodMode.BEFORE_METHOD)
2) Отметьте на уровне класса @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
3) Пометьте методы @Transactional
@SpringBootTest
public class ExportServiceTest {
@Autowired
ExportService exportService;
@Autowired
ExportRepository exportRepository;
@Autowired
UserRepository userRepository;
@Test
public void onlyOneExportUserShouldBeAddedWithMultipleEntries() {
UserEntity userEntity = new UserEntity().setId(2L);
exportService.createIfNotExist(userEntity);
exportService.createIfNotExist(userEntity);
Assertions.assertThat(exportRepository.findAll()).hasSize(1);
}
@Test
public void exportUserShouldBeAdded() {
UserEntity userEntity = new UserEntity().setId(1L);
exportService.createIfNotExist(userEntity);
Optional<UserExportEntity> exportUser = exportRepository.findByUserEntityId(userEntity.getId());
Assertions.assertThat(exportUser).isPresent();
}
@Test
public void shouldHaveTwoRecordsInExport() {
UserEntity userEntity = new UserEntity().setId(1L).setEmail("test@test.com");
UserEntity userEntity2 = new UserEntity().setId(2L).setEmail("test1@test.com");
userRepository.save(userEntity);
userRepository.save(userEntity2);
exportService.createIfNotExist(userEntity2);
exportService.createIfNotExist(userEntity);
Assertions.assertThat(exportRepository.findAll()).hasSize(2);
}
}