Насмешка в каркасе Спока - PullRequest
       18

Насмешка в каркасе Спока

1 голос
/ 01 декабря 2019

Я пытался написать тест в Споке, но у меня есть некоторые проблемы. Код скажет больше ... Мои тесты выглядят так:

class MyServiceSpec extends Specification {
    private MyService myService
    private MyDAO myDAO

    def setup() {
        myDAO = Mock(MyDAO)
        myService = new MyServiceImpl(myDAO)
    }

    def "Should get something"() {
        given:
        def user = Mock(User)
        def date = now()
        myDAO.getUsersSomethingFromDate(_ as User, _ as LocalDate) >> [ Mock(Something) ]

        when:
        myService.getUsersSomethingFromDate(user, date)

        then:
        1 * myDAO.getUsersSomethingFromDate(_ as User, _ as LocalDate)
    }
}

MyDAO - это interface.

Я также пробовал другой метод setup:

    def setup() {
        myDAO = Mock(MyDAO) {
            getUsersSomethingFromDate(_ as User, _ as LocalDate) >> [ Mock(Something) ]
        }
        myService = new MyServiceImpl(myDAO)
    }

Несмотря на то, что я объявил, что метод getUsersSomethingFromDate должен возвращать [ Mock(Something) ], он возвращает null. При следующем запуске метода сервиса я получил NullPointerException, потому что вернул 'null' вместо списка проверяемого экземпляра. Вопрос в том, почему смоделированный объект с объявленным значением для возврата по-прежнему возвращает null?

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