Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 模拟数据库_Java_Spring_Rest - Fatal编程技术网

Java 模拟数据库

Java 模拟数据库,java,spring,rest,Java,Spring,Rest,我有一个带有MySQL数据库的简单REST应用程序,一切正常,但在测试时,我们需要创建一个虚拟对象并对其进行测试,还是通过模拟数据库进行测试? 虚拟对象具有相当大的构造函数和嵌套类,这是一项非常艰巨的工作。如果您使用spring boot,那么H2是一种流行的内存数据库。Spring Boot对H2有很好的集成。IMO,使用模拟数据库没有什么意义,除非您正在测试连接处理。例如,如果数据库连接断开,我的应用程序将如何运行 对于SQL测试,您所做的并不比针对生产中要使用的实际数据库进行测试更好。如果

我有一个带有MySQL数据库的简单REST应用程序,一切正常,但在测试时,我们需要创建一个虚拟对象并对其进行测试,还是通过模拟数据库进行测试?
虚拟对象具有相当大的构造函数和嵌套类,这是一项非常艰巨的工作。

如果您使用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