测试Spring控制器:调用服务方法或模拟结果

时间:2016-01-11 06:35:37

标签: java spring unit-testing spring-mvc

使用Spring Test MVC测试Spring Controller时,我们目前正在使用DBUnit设置数据库,我们不会模拟服务方法。

虽然这会在一定程度上减慢我们的测试速度(我们使用嵌入式H2数据库),但我们的测试更加清晰,无需使用存根方法并创建测试数据构建器/工厂方法。

您对此有何看法?我们是否会对此方法感到后悔,您能就替代方法提出任何建议吗?

1 个答案:

答案 0 :(得分:2)

我宁愿说,只有在需要测试类或组件独立行为时才会使用Mocking,并且模拟的功能来自应用程序外部(例如电子邮件服务器)。与跨越多个层,访问数据库相比,这种行为更具可预测性。 有一篇很好的文章: http://blog.trifork.com/2012/12/11/properly-testing-spring-mvc-controllers/

但另一方面,如果最好避免使用Mocks,则需要集成测试,单元,功能等。这真的取决于你真正需要的东西。

请阅读此内容,有一个很好的讨论: Integration test per layer is a good practice?