【发布时间】:2010-12-07 02:14:48
【问题描述】:
我在控制器中有以下功能
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>
由于某种原因,如果您没有显式设置响应状态,则在从单元测试运行时,渲染将始终返回 200。
另外,如果我真的从浏览器调用这些,render202 会返回一个错误,但render201 和render203 会正常工作。我不知道render204会做什么。
这里发生了什么?这是 Grails 中的错误吗?
【问题讨论】:
标签: unit-testing render grails-controller