JPA单元测试

使用@TestPropertySource注解并尝试加载多个配置文件时,Spring框架并不直接支持同时加载多个属性文件。locations属性的值应为一个或多个classpath路径,但每次只会应用其中一个配置文件。

如果你希望在单元测试中合并主配置文件(application.properties)和特定于测试的配置文件(application-test.properties),你需要将特定于测试的属性覆盖到主配置文件上。可以采用以下方法:

1、按需覆盖: 在application-test.properties中仅包含那些需要在测试环境下重写的属性。

2、顺序加载: 虽然不能直接加载两个文件,但是你可以通过文件名排序来确保特定环境的配置文件优先加载。例如,将测试环境的配置文件命名为application.properties.test,然后在@TestPropertySource中指定这个文件。

bash 复制代码
@TestPropertySource(locations = "classpath:application.properties.test")

3、使用 profiles: 利用Spring Boot的profiles功能,在application.properties中定义默认值,而在application-test.properties中定义测试环境下的特定值。然后在测试类上通过@ActiveProfiles("test")激活测试环境。

java 复制代码
@SpringBootTest
@ActiveProfiles("test")
public class Test {
    // ...
}

并在你的资源目录下创建application-test.properties文件,其中包含测试环境所需的配置项。

这样,当运行带有@ActiveProfiles("test")注解的测试时,Spring Boot会自动合并application.properties和application-test.properties中的内容,并且后者中的配置项将覆盖前者中的同名配置项。

举例

java 复制代码
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@TestPropertySource(locations = "classpath:application-dev.properties")
@Slf4j
@ActiveProfiles("dev")
public class Test {
    @Autowired
    private DataServris dataServris ;

    @BeforeEach
    public void setUp() {
    }
    @Test
    public void test() {
        String data="1233";
      Test test = dataServris.get(data);
        log.info("test ->{}",test );
    }

}
相关推荐
brave and determined3 小时前
CANN训练营 学习(day10)昇腾AI算子ST测试全攻略:从入门到精通
自动化测试·人工智能·log4j·算子·fuzz·测试实战·st测试
記億揺晃着的那天1 天前
MyBatis-Plus 单元测试中 Lambda Mock 的坑与解决
单元测试·log4j·mybatis
m0_740043732 天前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
CeshirenTester2 天前
Playwright元素定位详解:8种定位策略实战指南
人工智能·功能测试·程序人生·单元测试·自动化
行走的陀螺仪2 天前
Vue3 项目单元测试全指南:价值、Vitest 落地与提效方案
开发语言·前端·单元测试·html5·vitest
fzm52983 天前
C语言单元测试在嵌入式软件开发中的作用及专业工具的应用
自动化测试·单元测试·汽车·嵌入式·白盒测试
川石课堂软件测试3 天前
Mysql中触发器使用详详详详详解~
数据库·redis·功能测试·mysql·oracle·单元测试·自动化
程序员汤圆3 天前
软件测试面试题总结【含答案】
测试工具·单元测试·测试用例
她说彩礼65万3 天前
C# params使用
开发语言·c#·log4j
卓码软件测评3 天前
第三方软件CMA/CNAS测评机构:【Apifox的自定义加密和签名的安全测试技巧】
测试工具·ci/cd·单元测试·测试用例·压力测试