【发布时间】:2019-09-26 00:26:00
【问题描述】:
我的服务类使用一个属性设置它 application.properties
@Service
public class Service {
@Value("${my.prop}")
private String prop;
public Response doWork(String param1,String param2){
System.out.println(prop); //NULL!!!
}
}
我想测试它并设置我自己的值:
测试类:
@RunWith(MockitoJUnitRunner.class)
@TestPropertySource(locations = "application.properties",properties = { "my.prop=boo" })
public class ServiceUnitTest {
@InjectMocks
private Service service;
@Test
public void fooTest(){
Response re = service.doWork("boo", "foo");
}
}
但是当我运行测试时,该值为 null(甚至不是 application.properties 中存在的值)。
【问题讨论】:
-
使用构造函数注入而不是字段注入。然后使用
new Service("whatever")创建您的服务实例。