Я пытался написать тест в Споке, но у меня есть некоторые проблемы. Код скажет больше ... Мои тесты выглядят так:
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
?