JPA单元测试

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

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

1、按需覆盖: 在application-test.properties中仅包含那些需要在测试环境下重写的属性。
2、顺序加载: 虽然不能直接加载两个文件,但是你可以通过文件名排序来确保特定环境的配置文件优先加载。例如,将测试环境的配置文件命名为application.properties.test,然后在@TestPropertySource中指定这个文件。

@TestPropertySource(locations = "classpath:application.properties.test")

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

@SpringBootTest
@ActiveProfiles("test")
public class Test {
   
    // ...
}

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

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

举例

@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 );
    }

}

相关推荐

  1. JPA单元测试

    2024-01-26 06:20:05       47 阅读
  2. 软件测试——单元测试

    2024-01-26 06:20:05       57 阅读
  3. 【Spring Boot 3】【JPA】一对一单向关联

    2024-01-26 06:20:05       55 阅读
  4. 单元测试和集成测试

    2024-01-26 06:20:05       29 阅读
  5. 软件测试单元测试

    2024-01-26 06:20:05       26 阅读
  6. spring 单元测试 Junit

    2024-01-26 06:20:05       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-26 06:20:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-26 06:20:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-26 06:20:05       87 阅读
  4. Python语言-面向对象

    2024-01-26 06:20:05       96 阅读

热门阅读

  1. C#获取当前运行时环境信息

    2024-01-26 06:20:05       55 阅读
  2. 【知识---ubuntu和debian之间的关系】

    2024-01-26 06:20:05       50 阅读
  3. ffmpeg读取媒体文件信息

    2024-01-26 06:20:05       64 阅读
  4. 嵌入式流媒体消息分发队列设计

    2024-01-26 06:20:05       50 阅读
  5. 【AI-Pos系列】DeepLabCut 学习

    2024-01-26 06:20:05       53 阅读
  6. windbg:常用指令

    2024-01-26 06:20:05       66 阅读
  7. @EnableEurekaServer

    2024-01-26 06:20:05       49 阅读
  8. go语言Map与结构体

    2024-01-26 06:20:05       43 阅读
  9. 开源项目贡献者指南

    2024-01-26 06:20:05       58 阅读
  10. Apache Spark

    2024-01-26 06:20:05       46 阅读
  11. Ubuntu 18.04 x86_64 上交叉编译 boost 库(ARMv7L)

    2024-01-26 06:20:05       54 阅读