我正在寻找一个内存数据库用于单元测试我的数据访问层.在生产中,我的大部分课程都将针对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以进行单元测试?
基础教程推荐
- IDEA2022.2的简介、下载与安装、配置教程 2023-07-01
- 一文了解Java读写锁ReentrantReadWriteLock的使用 2023-06-16
- Spring mvc实现Restful返回json格式数据实例详解 2023-08-01
- Spring循环依赖的解决方案详解 2023-02-27
- SpringCloud Netflix Ribbon超详细讲解 2023-06-30
- 详解Java如何优雅地书写if-else 2023-04-12
- Spring 零基础入门WebFlux框架体系 2023-03-10
- Java集合之同步容器详解 2023-04-06
- SpringBoot 转发请求至指定页面的操作方法 2023-07-01
- Java中5种异步实现的方式详解 2023-05-19
