Как я могу очистить Embedded Mongodb перед каждым тестовым классом - PullRequest
0 голосов
/ 29 мая 2020
• 1000 а остальные заполнены, потому что все они используют ту же базу данных при запуске maven.

как я могу очистить базу данных или удалить и воссоздать ее для каждого класса? или если я могу повторно инициализировать контекст Spring для каждого класса, и он может воссоздать базу данных.

lib: SpirngBoot(2.3.0), de.flapdoodle.embed.mongo(2.2.0), Junit5(5.5.2)

Пример кода каждый класс:

@SpringBootTest
@ExtendWith(SpringExtension::class)
@TestMethodOrder(MethodOrderer.OrderAnnotation::class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class DefaultValuesTest {

    @Autowired
    private lateinit var testData: TestDataInit

    @Autowired
    private lateinit var usersRepo: UsersRepo

    @BeforeAll
    fun init() {
        testData.init()
    }

    @Test
    @Order(1)
    fun `check if init with default values`() {
        val users = usersRepo.findAll()
        Assertions.assertFalse(users.isNullOrEmpty())
    }
}

Когда каждый класс запускает метод testData.init() данные существуют раньше, и некоторые уникальные ошибки выдачи индекса.

...