Java 在测试中用类路径覆盖spring资源值

Java 在测试中用类路径覆盖spring资源值,java,spring,Java,Spring,我想覆盖测试中资源的值: @SpringBootConfiguration public class MyExampleConfig { @Value("classpath:my-example-resource.yml") private Resource myExampleResource; } 有人知道我如何在测试中覆盖值“classpath:my example resource.yml”吗?如果您正在运行@springbootest,您可以使用以下注释: @RunWith

我想覆盖测试中资源的值:

@SpringBootConfiguration
public class MyExampleConfig {

  @Value("classpath:my-example-resource.yml")
  private Resource myExampleResource;

}

有人知道我如何在测试中覆盖值“classpath:my example resource.yml”吗?

如果您正在运行@springbootest,您可以使用以下注释:

@RunWith(SpringRunner.class)
@SpringBootTest(properties = {
        "key=value",
        "key=value"
})

它们将覆盖默认值。

如果运行@SpringBootTest,则可以使用以下注释:

@RunWith(SpringRunner.class)
@SpringBootTest(properties = {
        "key=value",
        "key=value"
})

它们将覆盖默认值。

您可以在参考资料下为测试包创建一个单独的application.properties文件,并且可以定义一个键值对,即:
classpath=classpath:my-example-resource.yml
并在代码中使用,如下所示

 @Value("${classpath}")
 private String classpath;

您可以在参考资料下为测试包提供一个单独的application.properties文件,并且可以定义一个键值对,即:
classpath=classpath:my-example-resource.yml
并在代码中使用,如下所示

 @Value("${classpath}")
 private String classpath;

您可以在测试包中将创建测试配置(
ApplicationTest
)与测试
.properties
.yml
一起使用,然后在测试中使用它

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ApplicationTest.class)
public class Test {
    @Test
    public void test() throws Exception {
      //some code
    }
}

您可以在测试包中将创建测试配置(
ApplicationTest
)与测试
.properties
.yml
一起使用,然后在测试中使用它

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ApplicationTest.class)
public class Test {
    @Test
    public void test() throws Exception {
      //some code
    }
}

你不能覆盖它-你已经硬编码了!您需要使用变量
${config.example.resource}
-在
应用程序.yaml
中设置该变量。现在-你可以用重写它。你不能重写它-你已经硬编码了!您需要使用变量
${config.example.resource}
-在
应用程序.yaml
中设置该变量。现在,您可以使用。