在 SpringBootTest properties 属性中包括 属性 列表

Including property lists in SpringBootTest properties attribute

所以我发现SpringBootTest允许将属性注入到测试文件中,这样测试文件中的数据就可以被覆盖,从而使属性文件中的生产数据如:

属性文件

data.test1 = Production data 1
data.test2 = Production data 2

可以用测试文件中的测试数据覆盖如:

测试文件

@SpringBootTest(properties = {
        "data.test1=Test data 1",
        "data.test2=Test data 2"})

我的问题是我的属性文件中有列表。有什么方法可以将列表注入 SpringBootTest 属性属性,如下面的数据?

带有列表的属性文件

    data-list:
        - id: 1
          data: Prod data 1
          other-data: Other prod data 1
        - id: 2
          data: Prod data 2
          other-data: Other prod data 2

有两种方法:

1:你可以这样覆盖

@SpringBootTest(properties = {
        "data-list[0].id=1",
        "data-list[0].data=data",
        "data-list[0].other-data=data",
        "data-list[1].id=1",
        "data-list[1].data=data",
        "data-list[1].other-data=data"})

2: 在测试文件夹下创建一个资源文件夹并覆盖 application.properties 或 yaml 文件,Spring 启动测试将选择过度干燥的文件而不是你的主应用程序文件