Сервис тестирования с SQL и источником данных - PullRequest
0 голосов
/ 30 марта 2012

У меня есть служба, которая использует Groovy SQL для выполнения некоторых SQL-вызовов к базе данных.Мои тесты для этого сервиса не пройдены, потому что dataSource имеет значение null.Как мне получить dataSource как соответствующее соединение внутри модульного теста?

ExampleService.groovy

class ExampleService { 
    def dataSource 

    def getSQL() { 
        def sql = new Sql(dataSource) 
        def query = "some query" 
        sql.call(query) 
        sql.close() 
    } 
} 

ExampleServiceTests.groovy

@TestFor(ExampleService) 
class ExampleServiceTests { 
    void testExample() { 
        def es = new ExampleService() 
        es.getSQL() 
    } 
} 

В приведенном выше примере я получаю следующееошибка:

java.lang.NullPointerException: Must specify a non-null Connection

1 Ответ

5 голосов
/ 30 марта 2012

В модульных тестах нет базы данных, только в интеграционных тестах.Все в модульных тестах использует mocking, поскольку нет активных Spring, Hibernate, базы данных, плагинов и т. Д. Постоянство всегда следует проверять на базе данных, даже если это просто база данных HSQL или H2 в памяти или версия dev MySQL /Postgres / Oracle / и т.д..базы данных.

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