我正在尝试验证我的 mockResource 调用 getQuantityString() 是否传递了正确的数量。
使用 getQuantityString() 的实际代码
resources.getQuantityString(R.plurals.SUCCESS,5,5);
在测试中:
@Captor private ArgumentCaptor<Integer> firstIntegerCaptor;
verify(resources).getQuantityString(isA(int.class),firstIntegerCaptor.capture(), any());
我在下面遇到了错误。
org.mockito.exceptions.verification.junit.ArgumentsAreDifferent:
Argument(s) are different! Wanted:
resources.getQuantityString(
isA(int),
<Capturing argument>,
<any>
);
Actual invocation has different arguments:
resources.getQuantityString(
2131165186,
5,
5
);
我检查了这个函数的原型(prototype)。
public String getQuantityString(int id, int quantity, Object... formatArgs)
错误是因为 Object...formatArgs 或 Integer 与 int 不匹配吗?
最佳答案
使用
verify(resources).getQuantityString(anyInt(),firstIntegerCaptor.capture(), Matchers.<Object>anyVararg());
关于android - ArgumentCapture 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40099082/