У меня есть следующие функции в контроллере
def render201 = {
render(status:201)
}
def render202 = {
response.setStatus(202)
}
def render203 = {
response.setStatus(203)
render(status:203)
}
def render204 = {
response.setStatus(204)
render(status:205)
}
И у меня есть следующие тесты
void test201() {
controller.render201()
assertEquals(201, controller.response.status)
}
void test202() {
controller.render202()
assertEquals(202, controller.response.status)
}
void test203() {
controller.render203()
assertEquals(203, controller.response.status)
}
void test204() {
controller.render204()
assertEquals(204, controller.response.status)
}
test201 завершается с этим сообщением
junit.framework.AssertionFailedError: expected:<201> but was:<200>
По какой-то причине, если вы явно не установили статус ответа, render всегда будет возвращать 200 при запуске из модульного теста.
Кроме того, если бы я действительно вызвал их из браузера, render202 вернул бы ошибку, но render201 и render203 работали бы просто отлично. Я не знаю, что сделает render204.
Что здесь происходит? Это ошибка в Grails?