0
В моем приложении есть AddressBookController
, который имеет editContact
действие, как показано ниже:Интеграция тестирование с использованием Спока
def editContact(){
AddressBook addressBook=AddressBook.findById(params.addressBookId)
render view: 'addContact', model: [addressBook:addressBook]
}
Теперь я пытаюсь проверить для просмотра и модели как:
class AddressBookControllerSpec extends IntegrationSpec{
AddressBookController addressBookController = new AddressBookController()
void setup() {
}
def "editContact action renders view with addressBook details"() {
when:
addressBookController.editContact()
then:
addressBookController.modelAndView.model.addressBook
}
void cleaup() {
// Tear down logic here
}
}
Но моя тест-тест потерпит неудачу с помощью stacktrace как:
Выполнение 2 тестов ... 1 из 2
| Failure: editContact action renders view with addressBook details(cvsurgeon.AddressBookControllerSpec)
| java.lang.NullPointerException: Cannot get property 'model' on null object
at cvsurgeon.AddressBookControllerSpec.setup(AddressBookControllerSpec.groovy:15)
| Completed 2 spock tests, 1 failed in 660ms
| Tests FAILED - view reports in ....
В чем может быть проблема.
Можете ли вы визуализировать представление с данными модели, когда вы нажимаете действие в браузере после 'run-app'? – dmahapatro
Да, мое редактируемое представление рендеринга с моделью правильно. – Abs
Я использую grails 2.2.0, я тестировал новое приложение, но это дает тот же результат. Я думаю, что modelAndView не получает экземпляр рамки. – Abs