MySQL可以在内存中用于JUnit测试吗?
在软件开发中,测试数据库交互是必不可少的,但它可能需要成熟的数据库设置和管理。为了简化此过程,一些开发人员使用 SQLite 或 H2 数据库进行内存测试。然而,在这种情况下是否有使用 MySQL 本身的选项?
解决方案:MariaDB4j
答案在于 MariaDB4j,它是一个 Gradle/Maven 依赖项,提供了完整的用于 JUnit 测试的兼容内存 MySQL 数据库。它需要最少的设置:
DB database = DB.newEmbeddedDB(3306); database.start(); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
对于额外的初始化,可以包含启动脚本:
database.source("path/to/resource.sql");
注意事项
虽然MariaDB4j提供了嵌入式MySQL解决方案,但它并不纯粹在内存中运行。它在系统的临时文件夹中创建临时文件。因此,它不是真正的内存中解决方案,依赖它的测试可能会偏离传统的单元测试定义,传统的单元测试定义要求独立于外部资源。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3