Проверить базу данных вниз с помощью Spring

Мне нужны тесты Spring для поведения приложения во время ошибки базы данных (соединение, вниз db ..). Есть ли способ выключить / убить или запустить бит памяти в режиме «Н2 в памяти» из тестов весеннего блока?

1
задан 13 August 2018 в 15:06

2 ответа

При выполнении тестов Junit с тестовой базой h2 экземпляр базы данных запускается, когда тестовый набор запускается и останавливается при выполнении тестов (при условии, что вы настроили базу данных с использованием bean-компонентов).

Если вы используете весеннюю загрузку, вы можете настроить тестовую базу данных h2 следующим образом:

src / test / resources / application-test.yml:

spring:
  datasource:
    driverClassName: org.h2.Driver
    url: jdbc:h2:mem:testdb
    username: sa
    password:

И настроить ваш тест вроде:

@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles(profiles = "test")
public class SignupControllerTest {
    @Autowired
    private WebApplicationContext webApplicationContext;

    private MockMvc mockMvc;

    @Autowired
    private RealityKeeperRepository myrepo;

Если вы используете регулярную пружину, вы можете настроить компонент DataSource с помощью аннотации @Profile("test"):

@Bean
@Profile("test")
public DataSource devDataSource() {
    return new EmbeddedDatabaseBuilder()
        .setType(EmbeddedDatabaseType.HSQL)
        .build();
}

и настроить ваши тесты например:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {AppConfig.class})
@ActiveProfiles(profiles = "test")
public class MyTest {
    @Autowired
    ...

Класс AppConfig должен быть аннотирован с помощью @Configuration содержать компонент devDataSource, упомянутый выше.

0
ответ дан 15 August 2018 в 17:01

Да, если у вас есть зависимость от H2 и у вас нет настроек для нее, то Spring boot начнет внедрять H2 для вас.

Эта статья должна быть полезной: http: //www.springboottutorial. ком / весна-загрузки и h2-в-памяти-базы данных

0
ответ дан 15 August 2018 в 17:01
  • 1
    Спасибо, но в этой статье я не нашел, как остановить и запустить db из запуска модульного теста. – Sisak 14 August 2018 в 08:54
  • 2
    Весна делает это для вас автоматически – Max Farsikov 14 August 2018 в 11:50

Другие вопросы по тегам:

Похожие вопросы: