背景介紹:
今年我們產(chǎn)品線(xiàn)對我們去年線(xiàn)上的遺留bug做了分析,發(fā)現線(xiàn)上的遺留問(wèn)題基本上是一些無(wú)法測試到的異常流程或者依賴(lài)的其他應用有異常引起的,普通的正常功能測試已經(jīng)很難發(fā)現那些問(wèn)題,于是我們今年提出了一個(gè)容錯測試的目標,希望能夠解決這類(lèi)問(wèn)題的測試瓶頸.
我們的目標:
為了說(shuō)明后面的內容,先看一個(gè)簡(jiǎn)單的例子,有下面的被測代碼:
接口:
public interface IHello {
public int hello();
}
實(shí)現:
public class Hello implements IHello {
@Override
public int hello() {
System.out.println("Hello is print!");
return 1;
}
}
現有方案介紹:
問(wèn)題:無(wú)法自動(dòng)化
問(wèn)題:不夠優(yōu)雅(用這個(gè)方法來(lái)做的話(huà),維護成本等會(huì )很高,不可管理…)
問(wèn)題:切入時(shí)間比較難控制,因為真實(shí)環(huán)境下的bean依賴(lài)如下圖,用mock框架很難控制bean的注入點(diǎn).
新的方案(基于AOP的實(shí)現):
采用AOP的方式來(lái)插入mock對象:
實(shí)現細節(限于篇幅,做了一定精簡(jiǎn))
原文轉自:http://www.taobaotesting.com/blogs/2443