0
我想測試一個Grails控制器的行爲。控制器回答一個JSON對象。接下來的函數失敗測試控制器響應時出錯。響應沒有更新
void testEnable() {
def controller = new UserController()
controller.enable()
assertEquals('{"errors":"No se puede completar la petición porque faltan parametros"}', controller.response.contentAsString)
controller.params.enabled = "foo"
controller.enable()
assertEquals('{"errors":"No se puede completar la petición porque faltan parametros"}', controller.response.contentAsString)
controller.params.enabled=true
controller.params.id=2
controller.enable()
/* Next line fails */
assertEquals('{"errors":"No se ha encontrado al usuario"}', controller.response.contentAsString)
}
我得到了一個錯誤:
null expected:<{"errors":"No se [ha encontrado al usuario]"}> but was:<{"errors":"No se [puede completar la petición porque faltan parametros]"}>
然而,如果我在兩個功能分開測試,無論是功能通過。
void testEnableGoodParameters() {
def controller = new UserController()
controller.params.enabled=true
controller.params.id=2
controller.enable()
assertEquals('{"errors":"No se ha encontrado al usuario"}', controller.response.contentAsString)
}
void testEnableBadParameters() {
def controller = new UserController()
controller.enable()
assertEquals('{"errors":"No se puede completar la petición porque faltan parametros"}', controller.response.contentAsString)
controller.params.enabled = "foo"
controller.enable()
assertEquals('{"errors":"No se puede completar la petición porque faltan parametros"}', controller.response.contentAsString)
}
所以,看起來controller.response沒有被改變。有誰知道爲什麼會發生這種情況,以及如何解決這個問題?