背景介紹:
今年我們產品線對我們去年線上的遺留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