コントローラーに次の機能があります
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 のバグですか?