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);
}
本文介绍了如何在Java测试中利用Jmockit库来模拟@Value注解,以便于测试含有此类注入的业务代码。示例展示了一个带有@Value注解的私有属性,并在测试中通过Deencapsulation.setField方法修改其值,验证测试结果。
1965

被折叠的 条评论
为什么被折叠?



