我有一個控制器,只允許特定的動作自檢: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