我正在寻找一个内存数据库用于单元测试我的数据访问层.在生产中,我的大部分课程都将针对MySQL 5.1运行,但有些课程将具有对Microsoft SQL Server的读取权限.在过去,I’ve had issues with differences dialects betw...
我正在寻找一个内存数据库用于单元测试我的数据访问层.在生产中,我的大部分课程都将针对MySQL 5.1运行,但有些课程将具有对Microsoft SQL Server的读取权限.
在过去,I’ve had issues with differences dialects between different databases tripping up unit testing(导致一次使用AspectJ在执行之前破坏查询!!!)所以我想尽可能地避免这种情况.
所以,我想知道哪个Java内存数据库的行为最接近MySql& SQL Server?我主要担心的是MySQL,因为我们使用它最多,而-AFAIK-它具有最多的非标准语法.这是针对单元测试的,因此可扩展性,性能,效率等并不重要.
解决方法:
我实际上在单元测试中使用MySQL数据库来确保正确性.使用JUnit时,您可以执行以下操作:
@Before
public void initialize() {
try {
dataSource.getConnection().close();
logger.info( "got a connection, so we can assume the configuration is correct..." );
}
catch ( Exception e ) {
logger.warn( "skipping tests as no connection is available. check spring config: {}", e.getMessage() );
e.printStackTrace();
assumeNoException( e );
}
}
这在每次测试之前运行,如果它无法连接到数据库,它将跳过测试而不会通过assumeNoException导致失败.这样,如果您需要构建一个没有为MySQL配置的系统,您可以,但如果您的开发人员正确配置他们的系统,它将使用已安装的MySQL实例.我知道这不是你问题的直接答案,但认为无论如何都可能有用……
本文标题为:哪个内存中的Java数据库最接近MySQL和SqlServer以进行单元测试?
- 关于@Scheduled不执行的原因分析 2023-08-10
- 如何在Java中创建进度条 2023-10-08
- Knife4j 3.0.3 整合SpringBoot 2.6.4的详细过程 2023-05-18
- EasyExcel工具读取Excel空数据行问题的解决办法 2023-04-07
- Spring 代码技巧梳理总结让你爱不释手 2023-01-18
- SpringCloud微服务熔断器使用详解 2023-06-05
- RocketMQ延迟消息简明介绍 2022-09-03
- Java中ThreadLocal线程变量的实现原理 2023-01-29
- SpringBoot实现文件上传下载实时进度条功能(附源码) 2023-06-23
- Java关键字之this用法详解 2023-07-14