在測試介面過程中,有時我們希望知道自己期望傳入的引數是什麼,以此來判斷傳入引數的正確行,這時就需要用到eassymock的capture方法.該方法能捕獲傳入的引數存放到自定義的變數中,然後用捕獲的引數與期望的引數進行對比,從而判斷呼叫介面時使用的引數是否正確.
下面用例子演示一下:
要測試的介面
package測試的類mocktestwithcapture;
public
inte***ce
service
packagemocktestwithcapture;
import
static org.junit.assert.*;
import org.easymock.*;
import org.junit.*;
import
static org.easymock.easymock.*;
public
class
testservice ;
//實際呼叫介面傳入的引數是arg和array
mockservice.handle(arg, array);
//捕獲實際傳入的引數
int actual1 =caparg.getvalue();
int actual2= (int
)caparray.getvalue();
//這裡我們將捕獲的引數進行校驗
assertequals(arg, actual1);
assertarrayequals(array, actual2);
verify(mockservice);}}
EassyMock實踐 自定義引數匹配器
雖然easymock中提供了大量的方法來進行引數匹配,但是對於一些特殊場合比如引數是複雜物件而又不能簡單的通過equals 方法來比較,這些現有的引數匹配器就無能為力了。easymock為此提供了iargumentmatcher 介面來讓我們實現自定義的引數匹配器。我們還是用例子來說話 要測試的介面...
c lambda表示式捕獲變數引數
不捕獲任何變數 捕獲外部作用域中所有變數,並作為引用在函式體重使用 捕獲外部作用域中所有變數,並作為副本在函式體重使用 foo 捕獲外部作用域中所有變數,並作為副本在函式體重使用,對於foo按引用捕獲 foo 當作副本捕獲foo,不引入其他變數 this 捕獲當前類中的this指標,讓lambda表...
go語言閉包如何捕獲引數
見 packagemain import fmt funcmain fori rangewhatever part 1 fori rangewhatever part 2 fori rangewhatever i part 3 part 1不必解釋什麼,一目了然,對於part 2,這是典型的乙個go...