Проблема с javax.sql.DataSource при модульном тестировании с Grails - PullRequest
1 голос
/ 18 мая 2011

Я использую javax.sql.DataSource для обработки запросов sql в моих сервисах:

class SomeService {  
    javax.sql.DataSource datasource

    def someFoo(foo) {
        def sql = new Sql(dataSource)
        def query = "SELECT DISTINCT * FROM someDomain WHERE FOO = ${foo}"
        def result = sql.rows(query)
        return result
    }  
}

И я создал несколько юнит-тестов для сервисов

class SomeServiceTests extends GrailsUnitTestCase {
    def service

    protected void setUp() {
        super.setUp()
        service = new SomeService()
    }

    def testSomeFoo() {
        service.datasource = new javax.sql.DataSource
        def result = service.someFoo("foo")
        assertNotNull result
    }
}

Я считаю, что мои услуги работают хорошо. Но из теста я получаю следующую ошибку:

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

Итак, это проблема со структурой тестирования или я что-то здесь упускаю? Я также пробовал аналогичную ситуацию с executeQuery, но это также вызывает «MissingMethodException».

Могу ли я создать модульные тесты с ними, потому что такая же проблема возникла и с интеграционными тестами?

Есть ли способ, которым я мог бы высмеять любой из них или изолировать части данных, чтобы просто проверить методы?

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