java - @Value 在junit 5中为空
问题描述
我正在测试我的应用程序,但是在运行测试用例时,我收到了 NUllPointer 异常,因为它无法映射 YML 文件中的值。
你能告诉我如何实现这一目标吗?
控制器类
class ControllerClass {
@Value("${app.items}")
String[] items; -- coming as null while running test cases
// remaing code
}
应用程序-test.yml
app:
items: a, b, c, d
测试班
@SpringJUnitConfig
@SpringBootTest
@ActiveProfiles("test)
class TestControllerClass {
@InjectMock
ControllerClass controller;
@Mock
ServiceClass service;
@Test
//test case
}
解决方案
Mockito 不知道该怎么做——你可以手动做:
@Before
public void setUp() {
String[] items = new String[2];
items[0] = "a";
items[1] = "b";
ReflectionTestUtils.setField(controller, "items",
items);
}