Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Unit testing 如何在内存数据库中使用H2编写单元测试_Unit Testing_H2 - Fatal编程技术网

Unit testing 如何在内存数据库中使用H2编写单元测试

Unit testing 如何在内存数据库中使用H2编写单元测试,unit-testing,h2,Unit Testing,H2,我的问题可能有点奇怪,但我真的不知道如何为我已经存在的应用程序编写单元测试(我知道我应该先编写单元测试,然后编写主源代码) 我的应用程序由一些表组成,这些表将从我的Java类自动创建。我的产品数据库是PostgreSQL 现在,我想用H2数据库编写一些单元测试。 但是,我使用了一些H2不支持的数据类型(一些特殊的注释-日期/时间) 我现在是否应该在测试包中使用正确的数据类型编写错误的新模型类,以便H2能够创建表? 还是有其他我不知道的方法 非常感谢您的帮助和提示 皮蒂很高兴看到你的问题未经讨论就

我的问题可能有点奇怪,但我真的不知道如何为我已经存在的应用程序编写单元测试(我知道我应该先编写单元测试,然后编写主源代码)

我的应用程序由一些表组成,这些表将从我的Java类自动创建。我的产品数据库是PostgreSQL

现在,我想用H2数据库编写一些单元测试。 但是,我使用了一些H2不支持的数据类型(一些特殊的注释-日期/时间)

我现在是否应该在测试包中使用正确的数据类型编写错误的新模型类,以便H2能够创建表? 还是有其他我不知道的方法


非常感谢您的帮助和提示

皮蒂很高兴看到你的问题未经讨论就被否决了。其他人是否认为它不清楚或不够充实?很难说

我想建议,编写错误的模型类以便H2可以代替Postgress是个坏主意。这可能会导致测试套件和生产代码之间的阻抗不匹配,难以维护。基于错误模型的更切题的测试可能不会测试任何有用的东西。他们可能是在练习数据库,而不是模型或任何有关应用程序的重要内容。最后一点,假设您或其他人希望在将来的某个时间点进行性能基准测试;对错误的dbms使用不正确的模型进行测试是没有用的

我更喜欢在整个开发过程中使用相同的dbms——开发、测试、登台、生产等等。我知道在某些地方使用不同的数据库是很常见的,这是为了提高速度或许可证问题,但如果我不必这样做,我不会这样做。就你的情况而言,我可以想出几个选择

  • 嵌入的树桩。我见过植入前列腺的人。环顾四周,尝试一些,选择合适的

  • 尝试使用RAM或磁盘。Linux可以创建基于内存的文件系统;创建一个,挂载它,让Postgres使用它。做一些测试,看看它是否真的提供了显著的性能优势。其他操作系统可能具有类似的功能

  • 使用标准Postgress。在标准安装的Postgress上运行测试;换句话说,没有什么花哨的东西,没有过早的优化,只是走最简单、最直接的道路。这就是我要做的

  • 用H2替换Postgres。。。但是不要。我同时使用H2和Postgres,我喜欢它们,但是您已经在prod中使用了Postgres,所以没有很好的理由进行更改


  • 祝你好运。

    非常感谢!这稍微澄清了我的问题。谢谢