@ Sql при тестировании для заполнения базы данных Spring - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь протестировать свои контроллеры Spring, и для этого мне нужно заполнить мою базу данных. Я использую базу данных h2.

@Sql(scripts="day9_springboot/src/test/resources/article.sql")
public class ArticleControllerIT {
    private static RestTemplate restTemplate;

    //we need to mock some data for the database
    @BeforeAll
    public static void init(){
        SpringApplication.run(Application.class);
        restTemplate = new RestTemplate();
        restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory("http://localhost:8080/articles"));
}
}

Вот как я пытаюсь ее заполнить. Однако сценарий, похоже, не работает.

insert into article(id,title,author,publication_date) values(1,'Title1','author1','2010-10-10');
insert into article(id,title,author,publication_date) values(2,'Title1','author1','2010-10-10');
insert into article(id,title,author,publication_date) values(3,'Title1','author1','2010-10-10');

Это сценарий. Есть предложения, как заставить эту работу работать?

1 Ответ

0 голосов
/ 07 августа 2020

Взгляните на документацию Spring boot, чтобы запустить свой тест с помощью Spring Test Framework.

По крайней мере, вам нужно использовать @SpringBootTest для запуска вашего приложения. Существует несколько аннотаций и вспомогательных / имитирующих классов для облегчения ваших тестов в зависимости от того, какую часть Spring вы хотите протестировать (MVC, данные и т.д. c ...)

@SpringBootTest
@Sql(scripts="day9_springboot/src/test/resources/article.sql")
public class ArticleControllerIT {

    @RestTemplate restTemplate;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...