#grails
#grails
Вопрос:
Я новичок в Grails / Groovy. Я написал сценарий или два в Groovy, но никогда не тестировал. Мой фон — Java.
Проект — это древняя часть тестового жгута, которую они хотят обновить для Java 8 и наших последних jars.
Я читал это: http://docs.grails.org/2.3.9/guide/testing.html … но я многого не понимаю. Тест, который я пытаюсь исправить, выдает ошибки, относящиеся к нулевой способности.
Тест выглядит так:
@TestFor(SomethingController)
@Mock(Something)
class SomethingControllerTests {
...
void testDelete() {
controller.delete()
assert flash.message != null
assert response.redirectedUrl == '/somethingPills/list'
response.reset()
populateValidParams(params)
def SomethingPills = new SomethingPills(params)
def saveValueReturned = SomethingPills.save()
assert saveValueReturned != null
assert SomethingPills.count() == 1
params.id = SomethingPills.id
controller.delete()
assert SomethingPills.count() == 0
assert SomethingPills.get(somethingPills.id) == null
assert response.redirectedUrl == '/somethingPills/list'
}
}
В результате в assert saveValueReturned != null
строке, указывающей на то, что сохранение было неудачным, выбрасывается исключение. Если я покопаюсь в Something
макете во время выполнения отладки, я увижу, что все поля равны нулю, за исключением поля ошибок. В поле errors перечислены ошибки not-nullablle, относящиеся к нескольким полям. Очевидно, что мне нужно установить их в макете. Мне нужны подсказки о том, как это сделать.
Ответ №1:
Из вашего кода кажется, что SomethingPills — это класс домена Grails. Поскольку вы передаете параметры и пытаетесь сохранить, вам необходимо заполнить параметры значениями, необходимыми для сохранения SomethingPills, иначе SomethingPills выдаст ошибку ValidationException.
Возможно, populateValidParams(параметры) не заполняют параметры всеми свойствами, которые необходимы для сохранения SomethingPills.
Комментарии:
1. ДА. На самом деле метод populateValidParams пуст. Если я правильно понимаю, все, что мне нужно сделать, это заполнить его соответствующими значениями?
2. Хорошо, я пытался сделать это раньше, и это не сработало. Теперь я понимаю, почему. Существуют ограничения, которые необходимо соблюдать. Только что узнал о них.