Как проверить LocalContainerEntityManagerFactoryBean с помощью Spock - PullRequest
0 голосов
/ 22 апреля 2019

Как я могу проверить соединение с БД с помощью спока? Я знаю, как сделать это, используя JUnit и пройти тест, но когда я пытаюсь сделать аналогичную вещь, используя Spock, я получаю NullPointerException и не могу вызвать метод getDataSource() для нулевого объекта.

@SpringBootTest
@ContextConfiguration(classes = DatabaseConfig.class)
@WebAppConfiguration
class DatabaseConfigTest extends Specification {

    @Autowired
    LocalContainerEntityManagerFactoryBean entityManagerFactoryBean;

    def "Should connect to database."() {
        when:
        entityManagerFactoryBean.getDataSource().getConnection()
        then:
        notThrown(SQLException.class)
    }
}

Как проверить соединение с БД с помощью Spock, мой класс, отвечающий за настройку базы данных, DatabaseConfig.class

1 Ответ

0 голосов
/ 24 апреля 2019

Это должно дать вам то, что вы ищете. Удалите аннотации ContextConfiguration и WebAppConiguration. Внедрить источник данных напрямую.

@SpringBootTest
class DatabaseConfigTest extends Specification {

    @Autowired
    DataSource dataSource;

    def "Should connect to database."() {
        when:
        dataSource.getConnection()
        then:
        notThrown(SQLException.class)
    }
}
...