gpt4 book ai didi

在内存数据库中使用 Spring Boot 测试

转载 作者:IT老高 更新时间:2023-10-28 13:46:02 26 4
gpt4 key购买 nike

我使用 Spring Boot 创建了一个 Spring Web 项目。想了解测试周围的实践。我需要一个内存嵌入式数据库,比如 hsql 或 h2 用于我的具有初始 schema.sql 的junit。在主应用程序上,数据库可以是 mysql 或 oracle

在非 Spring Boot 项目中,我们通常会有一个单独的 applicationcontext.xml,它由 Web 应用程序引用,为了测试我们将使用 applicationContext-text.xml

现在,在 Spring Boot 中,一切都是自动创建的,而且 Spring Boot 也被认为是可行的。想知道如何为 Junits 设置一个嵌入式内存数据库,为应用程序设置一个外部数据库(如 MySQL)。

我能想到的一个解决方案是使用配置文件。带有 2 个属性文件 application.properties 和 application-test.properties。并为我的junits使用测试配置文件。

关于我应该采取的方法的任何建议。

最佳答案

配置文件确实是推荐的方法。我要做的可能是将内存中实现设置为“默认”配置文件(它是无害的,因为您永远不会更改任何真实数据,因此最好将其设为默认值,以防有人不小心对真实数据库运行它)。就个人而言,我更喜欢将所有外部配置放在一个 application.yml 文件中,但这完全取决于您。在外部配置中,您需要提供有效的驱动程序类和 URL,例如

spring:
datasource:
driverClassName: org.h2.Driver
url: jdbc:h2:mem:test;MODE=PostgreSQL
schema: classpath:/schema.sql

---

spring:
profiles: local
datasource:
url: jdbc:postgresql://localhost/test
username: root
password: changeme
driverClassName: org.postgresql.Driver
schema:

(请注意,H2 具有 postgres 兼容模式,因此它非常适合作为生产环境中 postgres 的补充。)

关于在内存数据库中使用 Spring Boot 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com