У меня есть несколько тестов junit, где я хочу предварительно заполнить базу данных некоторыми данными, которые действительно имеют смысл для теста:
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
public class MyTest {
@Sql("test_insert.sql")
@Test
public void testInsert(){
...performs some inserts...
}
@Sql("test_delete.sql") //makes inserts to the db so to delete them
@Test
public void testDelete(){
...
}
Я заметил, что junit выполняет тесты в обратном порядке, что означает, чтомой testDelete будет выполнен первым.
Кажется, что тестовая вставка не удалась для «ограничения на повторяющиеся строки», и это происходит потому, что сценарии test_delete.sql действительно добавляют эту строку.
Можно ли откатить операции, выполненные @Sql и самим тестом, чтобы один тест не влиял на другие?