Если вы хотите повлиять только на один тест с помощью сценария, просто добавьте метод.
Например
@Sql({ "classpath:insertMessage.sql" })
@Test
public void myExtremlyBadTestMethodNamingConventionTest() {
Если вы хотите выполнить заданный тест перед всеми вашими тестами для одного класса тестирования. Вот где это становится сложно -
Прежде всего, вы можете подумать о добавлении @SQL в @BeforeClass, но
это невозможно, поскольку @SQL не поддерживает @BeforeClass
(или @Before).
Далее вы можете обнаружить аннотацию @Commit
, что означает, что вы можете
зафиксировать все изменения, сделанные с помощью теста. (@Transaction
по умолчанию
поведение откатить все изменения после теста) Теперь вы можете
рассмотрим @Commit
одиночный фиктивный тест для выполнения перед всеми вашими
другие тесты?
НЕТ Пожалуйста, не спускайтесь по этому маршруту.
JUnit не гарантирует порядок исполнения
тесты. (Это сделано специально) Потому что ваши тесты не должны полагаться на
результат других тестов.
Они должны быть независимы друг от друга. Зачем? Одним из преимуществ является то,
Затем тесты могут выполняться параллельно. Но вы также никогда бы не
хочу новый тест, чтобы сломать захватывающие тесты, это просто обслуживание
кошмар, ожидающий случиться. (#Truestory)
Дополнительно . В случае, если вы хотите выполнить указанный сценарий перед всем тестом, вы можете добавить файл import.sql к ресурсам вашего теста. Spring Boot автоматически проверит его перед вашими тестами и выполнит для вас. Другими словами, он настроит вашу базу данных в определенное состояние для всех ваших тестов.