ZBLOG

spring 测试案例如何使用 Embedded MySQL

要在 Spring 测试中使用嵌入式 MySQL,可以使用 testcontainers 库来实现。testcontainers 是一个用于 Docker 化应用程序的 Java 库,它可以为你提供各种类型的数据库镜像。

以下是一个使用 Embedded MySQL 进行 Spring Boot 测试的示例:

  1. 添加 Maven 依赖

在项目的 pom.xml 文件中添加以下依赖:

  1. <dependency>
  2. <groupId>org.testcontainers</groupId>
  3. <artifactId>mysql</artifactId>
  4. <version>1.15.2</version>
  5. <scope>test</scope>
  6. </dependency>
  1. 配置测试类

在需要进行测试的类上添加以下注解:

  1. @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
  2. @Testcontainers
  3. public class MyServiceTest {
  4. // ...
  5. }

这将告诉 Spring 在启动测试时随机分配一个端口,并且告诉 JUnit 使用 Testcontainers 运行容器。

  1. 配置 Embedded MySQL 容器

在测试类中定义一个静态字段,用于保存 Testcontainers 的 MySQL 容器实例:

  1. @Container
  2. public static final MySQLContainer<?> mysql = new MySQLContainer<>("mysql:8")
  3. .withDatabaseName("testdb")
  4. .withUsername("root")
  5. .withPassword("");

该容器会自动下载并运行名为 mysql:8 的镜像,并配置好用户名、密码和数据库名称。如果需要更改默认设置,则可以调用其他方法进行配置。

  1. 获取连接信息

可以通过以下方式获取连接信息:

  1. String url = mysql.getJdbcUrl();
  2. String username = mysql.getUsername();
  3. String password = mysql.getPassword();
  1. 编写测试用例

在测试用例中使用上述连接信息来连接数据库并执行相关操作即可。

  1. @Test
  2. public void testMyService() {
  3. MyService myService = new MyService(url, username, password);
  4. // ...
  5. }

以上就是使用 Embedded MySQL 进行 Spring Boot 测试的基本流程。注意,在测试结束后,Testcontainers 会自动停止容器并清理环境。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=3542

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?