背景介绍:
今年我们产品线对我们去年线上的遗留bug做了分析,发现线上的遗留问题基本上是一些无法测试到的异常流程或者依赖的其他应用有异常引起的,普通的正常功能测试已经很难发现那些问题,于是我们今年提出了一个容错测试的目标,希望能够解决这类问题的测试瓶颈.
我们的目标:
为了说明后面的内容,先看一个简单的例子,有下面的被测代码:
接口:
public interface IHello {
public int hello();
}
实现:
public class Hello implements IHello {
@Override
public int hello() {
System.out.println("Hello is print!");
return 1;
}
}
现有方案介绍:
问题:无法自动化
问题:不够优雅(用这个方法来做的话,维护成本等会很高,不可管理…)
问题:切入时间比较难控制,因为真实环境下的bean依赖如下图,用mock框架很难控制bean的注入点.
新的方案(基于AOP的实现):
采用AOP的方式来插入mock对象:
实现细节(限于篇幅,做了一定精简)
原文转自:http://www.taobaotesting.com/blogs/2443