Java 如何在数据库驱动的应用程序中编写单元测试代码?

Java 如何在数据库驱动的应用程序中编写单元测试代码?,java,database,unit-testing,spring-mvc,Java,Database,Unit Testing,Spring Mvc,我有数据库驱动的金融应用程序。我的大多数方法和服务都依赖于数据库来处理。所以我正在使用spring集成测试。现在我还想为我的应用程序编写单元测试。正如我们所知,单元测试依赖于单个组件,我应该如何为我的应用程序编写单元测试,因为我知道单元可测试代码设计得更好,更不容易出错。如果我使用mock或stub。。那不是我的真实情况。所以我感到困惑的是,单元测试不值得用于数据库驱动的应用程序吗 您当然可以(也应该)对“数据库驱动”应用程序进行单元测试。编写此类测试的目的是验证正在测试的代码的逻辑,而不是数据

我有数据库驱动的金融应用程序。我的大多数方法和服务都依赖于数据库来处理。所以我正在使用spring集成测试。现在我还想为我的应用程序编写单元测试。正如我们所知,单元测试依赖于单个组件,我应该如何为我的应用程序编写单元测试,因为我知道单元可测试代码设计得更好,更不容易出错。如果我使用mock或stub。。那不是我的真实情况。所以我感到困惑的是,单元测试不值得用于数据库驱动的应用程序吗

您当然可以(也应该)对“数据库驱动”应用程序进行单元测试。编写此类测试的目的是验证正在测试的代码的逻辑,而不是数据库层。您如何处理此类代码(例如,使用模拟、存根、伪造、测试数据库等)完全取决于您正在测试的内容

一般来说,您应该构造代码,使其不与数据库紧密耦合。少数几个类(TOP)负责与数据库交互,而其余的只是处理Java对象。然后,当您测试这些类时,只需传入测试对象,不需要数据库。对于少数需要直接与数据库交互的类,可以创建模拟或使用假数据库