控制器看起来像:
class HistoryController {
def list() {
def messages = ... some db query ...
[messages: messages]
}
}
没什么特别的。我在view目录的正确位置有一个list.gsp。如果我在浏览器中访问该网站,一切都很完美。
我的集成测试如下:
class HistoryControllerTests extends GroovyTestCase {
void testList() {
// login to spring security because list query needs user info
// create some messages and save to the DB
def hc = new HistoryController()
def model = hc.list()
def html = hc.response.contentAsString
...
}
}
模型是完全正确的,所以我们知道它正在进行正确的控制器调用。但是,html等于完全不同的控制动作的结果(甚至不属于HistoryController!)。如果在调用list()之前重置控制器响应,则响应为空字符串。
发生了什么事?有关跟踪此问题的任何提示吗?我正在使用Grails 2.0。