自動(dòng)測試工具AgitarOne 初體驗之-MockingBird的使用[1] 自動(dòng)化測試工具
為了提高測試代碼的Coverage,僅僅靠AgitarOne來(lái)處理2K多行的方法,是肯本不夠的。我現在搞的那個(gè)方法覆蓋率才20%,不過(guò)比同事的 10%好多了。不過(guò)都是測試 異常的Test Case,一個(gè)正向的Test Case的沒(méi)有。只能硬著(zhù)頭皮看人家生成的代碼來(lái)提高代碼Coverage,在A(yíng)gitarOne生成代碼中,大量使用了MockingBird來(lái) Mock對像,對于Mock對象我想大家都應該很清楚了吧。下面我將概要的介紹以下AgitarOne的MockingBird對象。
MockingBird 最主要的也就是以下5個(gè)API:
1.MockingBird.getProxyObject(), 該方法是創(chuàng )建一個(gè)Mock實(shí)例,比如我們想創(chuàng )建一個(gè)XXXHome 的mock 代碼如下:
XXXHome xxxHome =(XXXHome)MockingBird.getProxyObject(XXXHome.class)
2.Mockingbird.setReturnValue() 該方法指定一個(gè)方法返回特定的值。比如我們想調用getConnection 返回一個(gè)Mock 真是的Xmock對象, 代碼如下:
Mockingbird.getReturnValue(getConnection(),Xmock);
3.MockingBird.enterRecondingMode() 該方法就是使MockingBird進(jìn)入錄制模式,F在不好說(shuō)清楚, 下面會(huì )有代碼解釋。
4.MockingBird.enterTestMode() 該方法就是使MockingBird就如測試模式。
5.MockingBird.setException 該方法使一個(gè)方法拋出異常。比如我們想如果調用getConnection 拋出SQLException,代碼如下:
MockingBird.setException(getConnection,new SQLException("sql exception!"))
下邊將表述如何使用。
假如要測試以下方法,在這個(gè)方法中使用了第三方的代碼,比如是EJB或者是數據庫連接,那么我們在測試這個(gè)方法時(shí)難道好一定要有EJB容器或者真是的數據庫嗎?
使用了MockingBird 就OK了!
private int getValue(){
thirdPart x = Global.getThirdPart();
Connection connecton = x.getConnection();軟件測試
return connection.getValue("test");
}
對于Global.getThirdPart() 我們可以Mock一個(gè)thirdPart 而不是實(shí)際的對象,同理 Connection也是。首先我們創(chuàng )建兩個(gè)Mock對象。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/