Экземпляр PagedResultList в модульном тесте Grails 3.1.7

Можно ли создать экземпляр PagedResultList или Mock?

Для фона: в настоящее время я пишу модульные тесты контроллера. Если нужно, я заглушил вызовы Сервисной функции. Но некоторые из этих функций имеют тип возвращаемого значения PagedResultList. Поэтому мне нужно ввести экземпляр PagedResultList или null.

В некоторых случаях мне нужен экземпляр, потому что контроллер делает что-то вроде этого:

testFunction(){
    def result = sampleService.doSomething()

    if (result.empty) {
        variable = "it´s empty"
    }
    render variable
}

Мой тест выглядит так:

void "sample Test"(){
    given:
        controller.sampleService = Mock(SampleService)
        PagedResultList emptyPagedResultList = ?????

    when:
        controller.testFunction()

    then:
        1 * controller.sampleService.doSomething() >> emptyPagedResultList
        response.text == "it´s empty"
}

Кто-нибудь может помочь мне заменить ????? куском кода, чтобы решить эту проблему?

Заранее спасибо.


person se-jaeger    schedule 06.07.2016    source источник


Ответы (1)


Да, тут есть пара вариантов:

  • Вы можете использовать настоящий PagedResultList в качестве emptyPagedResultList — см. rel="nofollow">FooControllerSpec.groovy строка 11 для примера
  • Вы можете использовать другой Spock Mock() в качестве emptyPagedResultList — см. rel="nofollow">FooControllerSpec.groovy строка 25 для примера
person Colin Harrington    schedule 06.07.2016
comment
Спасибо за эти отличные примеры. - person se-jaeger; 06.07.2016
comment
@se-jaeger это ответило на твой вопрос? - person Colin Harrington; 18.01.2017