以前使用mockito遇到一些問題,例如:變長參數的匹配、自定義參數匹配器,這些在mockito的官方文檔(http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html)中並沒有詳細的介紹,基本上是在stackoverflow上找的資料,摸索成功了,未寫總結時間久了,遺忘了,又重新找資料,⊙﹏⊙b汗!
1、自定義參數匹配器、數組參數匹配
本篇文章主要介紹入參爲此種格式的public void saveOrders(Order ...order);方法參數matcher方式,
http://linmingren.me/blog/2012/08/mockito%E4%BD%BF%E7%94%A8/
根據文章所述採用any(Order[].class)即可;
我遇到此種情況的入參,依然無法通過,只能把入參改爲(Order[] order)方式纔可以。
文章還有mock/spy的區別,如何自定義參數匹配器(http://rwehner.wordpress.com/2010/02/23/mockito-some-useful-programming-examples/)。
推薦指數☆☆☆☆☆
2、基本資料
http://www.baeldung.com/mockito-verif本篇文章主要是mockito基本用法,其中有ArgumentCaptor的介紹,還有二篇更詳細的:
http://hi.baidu.com/hivemind/item/1549ee3d4e4c1abc124b1468
http://www.vogella.com/tutorials/Mockito/article.html
其實最好的文檔就是官方的docs
推薦指數☆☆
3、自定義返回值
http://googletesting.blogspot.com/2014/03/whenhow-to-use-mockito-answer.html通過實現Answer接口來自定義返回值,文章的評論中有使用Answer特性來指定mock對象返回值的代碼:mock對象默認情況下返回對應對象的默認值。
推薦指數☆☆☆
4、如何與Spring整合
方案1:使用Springockito,最簡單的方案
https://bitbucket.org/kubek2k/springockito/wiki/Home
方案2:通過Spring@Configuration&&@Bean方式定義實現spring bean的方法:
@Bean
public ItemSkuFilterTask makeDao() {
returnMockito.mock(ItemSkuFilterTask.class);
}
好處是可以自定義mock對象對某個方法調用的響應