我有一个控制器,只允许特定的动作自检:Grails的2.0.0:HTTP状态302
static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
然后有一个测试吧:
void testUpdateWithGet() {
controller.update()
assert response.status == HttpServletResponse.SC_METHOD_NOT_ALLOWED
}
这工作得很好2.0。 0.RC1,但升级到Grails 2.0.0最终版后,响应中的返回状态为302
。这是为什么?
问候
乔纳斯
如果我明确地设置方法,我会得到相同的'request.method =“GET”'。一些类似的测试甚至会返回'200',这意味着通话正常。 – Jonas 2011-12-22 00:18:56
值得一提的是,对于所有控制器,“save”操作返回200以及“更新”和“删除”302。 – Jonas 2011-12-22 04:01:12
鉴于如果我不是从单元测试而是从命令行通过curl测试这个问题,并且我无法重现你的302s,我猜测有关如何直接调用该方法的问题有些不妥。 我会建议删除您的allowedMethods条件并打印出您的控制器中的request.method,然后运行您的测试。只是为了让你可以看到默认值是什么。 – 2011-12-22 06:46:28