Grails 2.0: POST и flash.message - PullRequest
       7

Grails 2.0: POST и flash.message

0 голосов
/ 25 ноября 2011

Наличие в вашем контроллере следующего содержания:

static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

приведет к действию save(), например, для установки пустой карты flash.Т.е. следующий тест не пройден, потому что флэш-память [:] после возврата действия и сообщение null:

Контроллер:

static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
[...]
def save = {
    flash.message = "Saved"
}

Тест:

void testSave() {
    controller.save()
    assert null != flash.message
}

Есть ли причина для этого или это ошибка в Grails 2.0?

1 Ответ

2 голосов
/ 25 ноября 2011

Причина, по которой флэш-память пуста, заключается в том, что вы определили save () для использования только метода POST.Это то, что делает Grails - он не позволяет вам получить доступ к save () с помощью GET.Ваш полный тест должен выглядеть так:

void testSaveWithGet() {
    controller.save()
    assert response.status == HttpServletResponse.SC_METHOD_NOT_ALLOWED
} 

void testSaveWithPost() {
    request.method = "POST"
    controller.save()
    assert flash.message == "Saved"
}
...