我正在寻找一个内存数据库用于单元测试我的数据访问层.在生产中,我的大部分课程都将针对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以进行单元测试?
基础教程推荐
- RocketMQ之Consumer整体介绍启动源码分析 2023-07-14
- 关于@Autowired注入依赖失败的问题及解决 2023-04-18
- Java ThreadPoolExecutor用法介绍 2023-10-08
- Sentinel热点key限流的实现详解 2023-05-08
- java中的HashMap多层嵌套 2023-06-02
- java生成自增编号数字的问题 2023-06-01
- Java 实现 web服务器的简单实例 2023-08-01
- 利用Java实现天气预报播报功能 2023-01-24
- Java使用ArrayList实现扑克牌的示例代码 2023-06-06
- Spring6整合JUnit的详细步骤 2023-07-14