如果一个 Java 类在初始化时会有外部依赖,这就给单元测试创建它的实例时造成困难。当然被测试类可以改造为依赖全部构造时注入或创建实例后延迟注入,这里不考虑这种改造。
可以参看我以前一篇类似的日志:使用 JMockit 来 mock 构造函数
来说下面的例子
1 2 3 4 5 6 7 8 |
public class OrderService { private PriceInquiry priceInquiry = new PriceInquiry(); ......... public double totalPrice() { return priceInquiry.retrieve(....); } } |
假如上面的代码是不能改动的,并且在 new PriceInquiry()
时依赖于网络环境,所以单机情况不能创建成功。也就使得测试时试图
new OrderService();
会失败。并且试图用 Mockito 的 @InjectMocks
也不行 阅读全文 >>