Jmockit对@Value属性进行模拟
<!--jmockit版本-->
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.38</version>
<scope>test</scope>
</dependency>
业务代码如下:
/**
* 被测试类:代码中使用了@Value获取配置项
*/
@Value("${order.name}")
private String name;
@Override
public String getStringName() {
return name;
}
测试案例:
@Tested
private OrderServiceImpl orderService;
@Test
public void mockPrivateName_test() {
// 修改被测试类中的成员属性name
Deencapsulation.setField(orderService, "name", "codeMock");
String stringName = orderService.getStringName();
Assert.assertEquals("codeMock", stringName);
}