Java 模拟数据库
我有一个带有MySQL数据库的简单REST应用程序,一切正常,但在测试时,我们需要创建一个虚拟对象并对其进行测试,还是通过模拟数据库进行测试?Java 模拟数据库,java,spring,rest,Java,Spring,Rest,我有一个带有MySQL数据库的简单REST应用程序,一切正常,但在测试时,我们需要创建一个虚拟对象并对其进行测试,还是通过模拟数据库进行测试? 虚拟对象具有相当大的构造函数和嵌套类,这是一项非常艰巨的工作。如果您使用spring boot,那么H2是一种流行的内存数据库。Spring Boot对H2有很好的集成。IMO,使用模拟数据库没有什么意义,除非您正在测试连接处理。例如,如果数据库连接断开,我的应用程序将如何运行 对于SQL测试,您所做的并不比针对生产中要使用的实际数据库进行测试更好。如果
虚拟对象具有相当大的构造函数和嵌套类,这是一项非常艰巨的工作。如果您使用spring boot,那么H2是一种流行的内存数据库。Spring Boot对H2有很好的集成。IMO,使用模拟数据库没有什么意义,除非您正在测试连接处理。例如,如果数据库连接断开,我的应用程序将如何运行 对于SQL测试,您所做的并不比针对生产中要使用的实际数据库进行测试更好。如果您使用另一个数据库作为替代,即H2,请确保您了解您正在测试的DB驱动程序和数据库与生产部署不同,这意味着您可能无法在使用此设置的测试中发现潜在错误 对于测试数据处理,您也可以使用某种类型的模拟,但是如果您总是希望更好地使用将在生产中使用的实际数据库,则可以随时使用
如果您使用Hibernate作为ORM提供程序,作为设置集成测试的一部分,您可以使用它执行DML脚本来加载您的数据进行测试。
用于集成测试,您应该考虑在内存中使用数据库,例如H2。p> H2支持IBM DB2、Apache Derby、HSQLDB、Microsoft SQL Server、MySQL、Oracle和PostgreSQL。要使用MySQL模式,请使用如下所示的数据库URL(有关更多详细信息,请参阅):
jdbc:h2:~/test;MODE=MySQL;DATABASE_TO_LOWER=TRUE