【问题标题】:How shall I write unit test code in database driven app?我应该如何在数据库驱动的应用程序中编写单元测试代码?
【发布时间】:2017-04-05 08:10:56
【问题描述】:
我有数据库驱动的金融应用程序。我的大部分方法和服务都依赖于数据库来处理。所以我正在使用弹簧集成测试。现在我还想为我的应用程序编写单元测试。我们知道单元测试依赖于单个组件,我应该如何为我的应用程序编写单元测试,我知道单元可测试代码设计得更好,更不容易出错。如果我使用模拟或存根......那将不是我的真实场景。所以我很困惑,单元测试不适合数据库驱动的应用程序吗?
【问题讨论】:
标签:
java
database
unit-testing
spring-mvc
【解决方案1】:
您当然可以(并且应该)对“数据库驱动”应用程序进行单元测试。编写此类测试时,您的目标是验证您正在测试的代码的逻辑,而不是数据库层。您如何处理此类代码(例如,使用模拟、存根、伪造、测试数据库等)取决于您正在测试的内容。
一般来说,您应该构建代码,使其与数据库不紧密耦合。少数几个类,tops,负责与数据库交互,而其余的只是简单地处理 Java 对象。然后,当您测试这些类时,您只需传入测试对象,不需要数据库。对于少数需要直接与数据库交互的类,您可以创建模拟或使用假数据库。