我正在开展这个项目,我希望拥有体面的测试基础设施。 我正在使用spring boot,这样可以更轻松地测试项目的各个层:例如
如果我想测试控制器层,我将模拟(使用mockito)控制器的服务依赖性,并检查是否将在给定的http请求上调用正确的服务方法,并且将返回预期的http状态。如果我想测试服务层,我将模拟存储库和业务逻辑依赖项。等等。
在我的项目中,我使用spring验证器检查请求体是否正确传递(使用@InitBinder方法我将自定义验证器添加到WebDataBinder,并使用@Valid注释,调用这些验证器在解析的请求主体上)。
所以我的问题是:模拟验证器并仅测试控制器逻辑(验证器将在验证器层的上下文中进行测试)是一种好习惯吗? 我只是不确定哪种是最佳做法,测试验证器和控制器是否正常?
答案 0 :(得分:0)
当您测试控制器逻辑,验证逻辑以及特别是业务逻辑时,模拟并不总是最佳选择。我不建议嘲笑这些。
您可以使用各种框架进行测试:
进一步阅读:
RestAssured :http://rest-assured.io/
Spring验证器测试:Writing JUnit tests for Spring Validator implementation