Spring TEST REST控制器(消耗/生成JSON) - 没有数据库,离线 - 使用Mockito

时间:2012-02-06 18:43:49

标签: spring testing rest controller mockito

这个问题紧挨着问题I had asked here。在这个问题中,我想集中讨论测试基于Spring的REST控制器的方法。

目前,我设置测试的方式是 - 使用 spring-test-mvc 框架与基本上进行端到端测试的数据库。< / p>

我想摆脱数据库层。为什么?我真的需要数据库层吗?我不能模拟数据库吗?

所以,我想知道一种高效测试基于Spring的REST控制器的方法,该控制器包含 Mockito 等框架。

请分享并指导我正确的方向。

1 个答案:

答案 0 :(得分:4)

通常,控制器仅与服务交互。大多数控制器/服务交互是数据和/或状态编组。 (和异常处理。)模拟/存根(坚持?)服务层允许我们确保控制器处理它与服务之间可能发生的任何事情。

“完整且有保证”取决于您。例如,与User数据库交互的服务可能只会执行以下操作:检索用户,检索用户列表,更新用户或抛出特定于应用程序或框架的异常。从控制器的角度来看,这些是需要测试的东西 - 这不是那么多东西,所以“完整性”是相当简单的。

这些都不测试服务或DAO。例如,服务可能会使用“sticked” DAO进行测试。 DAO可能会使用内存数据库进行测试(尽管说实话,我并不总是测试DAO,除非他们有非平凡的,开发人员生成的SQL)。

这些都不是集成测试的替代品,它可以测试路由,错误和异常条件处理,数据格式化和内容等。