首页 > 解决方案 > @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

}

标签: javaspringspring-bootjunitjunit5

解决方案


Mockito 不知道该怎么做——你可以手动做:

 @Before
    public void setUp() {
        String[] items = new String[2];
        items[0] = "a";
        items[1] = "b";
        ReflectionTestUtils.setField(controller, "items", 
               items);
    }

推荐阅读