【发布时间】:2012-07-05 06:11:11
【问题描述】:
在我的集成测试中,我执行以下操作:
void testSave() {
def controller = new BookController()
controller.params.title = "Awesome Book"
controller.params.pages = 1000
controller.save()
// i want to check book data here
}
如何检索我的控制器持续存在的Book 并检查title == "Awesome Book" 和pages == 1000 是否存在?我可以通过测试以某种方式访问控制器中的bookInstance 变量吗?
我不能假设Book.get(1) 会给我正确的Book,因为数据库中会有引导数据。控制器重定向到完全不相关的 Book 页面,因此我无法从 URL 中获取 id。我唯一能想到的就是做这样的事情:
void testSave() {
def oldIdList = Book.list()*.id
// set up the parameters and call controller.save()
def insertedId = Book.list()*.id - oldIdList
// check Book.get(insertedId) properties
}
但我希望有更好的方法......
【问题讨论】:
标签: testing grails integration-testing