Ste*_*all 6 testing grails groovy unit-testing controller
我有一个像这样的控制器方法:
def search = {
def query = params.query
...
render results as JSON
}
Run Code Online (Sandbox Code Playgroud)
我如何对此进行单元测试?具体来说,我如何调用搜索来设置params.query,以及如何测试方法的结果render?有没有办法模拟渲染方法呢?
用于单元测试的子类grails.test.ControllerUnitTestCase.Grails将自动实例化您的控制器并模拟渲染和重定向的版本,以便您轻松地测试结果.只需将测试输入分配给controller.params即可设置测试.
例:
class SomethingController {
def search = {
def query = params.query
...stuff...
render results as JSON
}
}
Run Code Online (Sandbox Code Playgroud)
测试看起来像:
class SomethingControllerTests extends grails.test.ControllerUnitTestCase {
void testSearch() {
controller.params.query = "test query"
controller.search()
assertEquals "expected result", controller.response.contentAsString
}
}
Run Code Online (Sandbox Code Playgroud)
注意:如果需要完整的数据库集成环境,也可以使用ControllerUnitTestCase进行集成测试.
| 归档时间: |
|
| 查看次数: |
2880 次 |
| 最近记录: |