gpt4 book ai didi

java - 使用 SQL 查询进行 Spring Boot 组件测试

转载 作者:行者123 更新时间:2023-11-30 06:18:49 24 4
gpt4 key购买 nike

我正在尝试为 SQL 查询设置组件测试。为了处理 SQL,我使用 myBatis。

我有一个测试数据源配置,用于创建嵌入式 H2 数据库。这对于任何简单的查询都很有效。

我的问题是我有一个查询使用 H2 不支持的 SQL 公用表表达式 (NOLOCK)。

我可以让 H2 忽略 NOLOCK 部分或替换 junit 测试期间使用的查询字符串吗?

myBatis 映射器看起来像这样:

public interface CoolMapper {
@Results(...)
@Select("SELECT * FROM cool_table WITH (NOLOCK)")
List<CoolObject> getThings();
}

数据源配置: @配置 公共(public)类TestingDataSourceConfig {

    public TestingDataSourceConfig() {}

@Profile("test")
@Bean(name = "dataSources")
@Primary
@Qualifier(DataSourceConfig.DATA_SOURCES)
public Map<UUID, DataSource> dataSources() {
Map<UUID, DataSource> dataSourceMap = new HashMap<>();
UUID uuid = UUID.fromString("dac46f50-a1fb-3434-b262-0c0c4564b117");

EmbeddedDatabase database = new EmbeddedDatabaseBuilder().generateUniqueName(true)
.setType(EmbeddedDatabaseType.H2)
.setScriptEncoding("UTF-8")
.ignoreFailedDrops(true)
.addDefaultScripts()
.build();

dataSourceMap.put(uuid, database);

return dataSourceMap;
}
}

最佳答案

有时您只需要一个真正的运行时环境,就像这里您需要一个专有数据库。在这些情况下,不要尝试将其作为单元测试来执行。将其作为验收/系统测试的一部分 - 即,一旦部署到您的开发(或 QA,等等)服务器,您就在应用程序上运行测试。

关于java - 使用 SQL 查询进行 Spring Boot 组件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48603618/

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