gpt4 book ai didi

java - 测试私有(private)方法时不加载配置值

转载 作者:行者123 更新时间:2023-11-30 02:36:25 25 4
gpt4 key购买 nike

我有一个类:

    @Service
public class MyService{
@Value("${some.value}")
private String someValue;

private String someMethod(String inputString){
return inputString == null || inputString.isEmpty() ? someValue : inputString;
}
}

在属性文件中,some.value 定义如下:

some.value=SomeValue

然后我尝试使用 ReflectionTestUtils 测试 someMethod:

public class MyTest{

@Value("${some.value}")
private String someValue;

@Autowired
private MyService myService;

@Test
public void testSomeMethod() {
Assert.assertEquals(someValue, ReflectionTestUtils.invokeMethod(myService, "someMethod", ""));
}
}

我收到以下错误:

java.lang.AssertionError: Expected :SomeValue Actual :null

调试时,我看到我正在测试的服务内部 - 配置值为空。

更奇怪的是(对我来说:))如果我将 someMethod 从私有(private)更改为公共(public),一切都会正常工作。

最佳答案

在您的类中添加此注释:

   @RunWith(SpringJUnit4ClassRunner.class)
@PropertySource("classpath:name-file.properties ")

并在您的测试包资源中添加文件:

src/test/resources/name-file.properties

关于java - 测试私有(private)方法时不加载配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923423/

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