Grails:控制器单元测试,操作的责任应该是什么?



在示例中https://guides.grails.org/grails-controller-testing/guide/index.html,成功案例需要有效的有效负载,但这不应该是一个要求,测试应该只是验证操作实际应该做什么?

示例:

class OneController {
def list(OneCommand command) {
if (command.hasErrors()) {
render command.errors as JSON
return
}
respond oneService.save(command.param1) as JSON
}
}

若命令有效,则必须调用Stub(oneService.save(((,并将command.param1作为参数传递,返回值必须是此服务作为JSON的返回值。

若命令无效,则应以JSON形式返回command.errors。

在另一个单元测试中,测试OneCommand。

在示例中https://guides.grails.org/grails-controller-testing/guide/index.html,成功案例需要有效的有效负载,但这不应该作为一项要求,测试应该只验证操作应该怎么做?

提供有效的有效负载不是测试这一点的唯一方法,但这是一种常见的方法。

通过正在测试的代码有两条路径。如果command.hasErrors()评估为true则触发一条路径,而如果command.hasErrors()未评估为true则触发另一条路径。测试应涵盖这些路径中的每一条。提供一个具有有效有效负载的测试和一个具有无效负载的测试是实现这一点的简单方法。还有其他方法,例如,可以调用控制器上的list方法,并传递模拟的OneCommand作为参数。

最新更新