簡體   English   中英

的Mockito。驗證方法參數是否為特定類

[英]Mockito. Verify method param to be a particular class

我有一個方法:

void putObject(<T extends BaseEntity> param)

有一些測試,我嘲笑這個方法,但我想知道,如何驗證該方法是否被特定類的參數調用? 試圖以這樣的方式做到:

verify(foo).putObject((SomeClass)anyObject());
------
verify(foo).putObject(any(SomeClass.class));
------
ArgumentCaptor<SomeClass> parameter = ArgumentCaptor
            .forClass(SomeClass.class);
verify(foo).putObject(parametr);

僅使用any()工作第二個變量,但它不t check class of參數t check class of 那么,如果有可能驗證該方法獲得特定類的任何對象?

用戶匹配文檔 是A()方法。

public static <T> T isA(java.lang.Class<T> clazz)

這將解決您的問題。

verify(foo).putObject(isA(SomeClass.class));

實際上你可以用ArgumentCaptor查看。

ArgumentCaptor<SomeClass> parameterCaptor = ArgumentCaptor
            .forClass(SomeClass.class);
verify(foo).putObject(parameterCaptor.capture());

SomeClass instance = parameterCaptor.getValue();
// check intance.getX()
// check instance.getY()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM