我有方法的類:的Mockito參數匹配使用多個參數
class URAction {
public List<URules> getUrules(Cond cond, Cat cat) {
...
}
}
我想創建它的模擬:
@Mock
URAction uraMock;
@Test
public void testSth() {
Cond cond1;
Cat cat1;
List<URule> uRules;
// pseudo code
// when uraMock's getUrules is called with cond1 and cat1
// then return uRules
}
的問題是,我可以讓模擬返回uRules只有一個參數:
when(uraMock.getUrules(argThat(
new ArgumentMatcher<Cond>() {
@Override
public boolean matches(Object argument) {
Cond cond = ((Cond) argument);
if (cond.getConditionKey().equals(cond1.getConditionKey())
return true;
return false;
}
}
))).thenReturn(uRules);
不知道如何傳遞第二個參數,即貓在上面的時候調用。
任何幫助將不勝感激。
感謝
一個解決辦法是使用'時(uraMock.getUrules(任何(Cond.class),任(Cat.class).thenAnswer(新的答案(){})',檢查ARGS在實施答案。看http://site.mockito.org/mockito/docs/current/org/mockito/stubbing/Answer.html –
這似乎是一個可行的解決方案。如何紀念這個作爲答案?它只是在註釋。 – user1539343
讓我們這樣做:根據我的評論添加一個答案並接受它,這可能會給你一些代表;) –