我怎样才能让它在我的模拟测试中发挥作用???,我读过的所有答案都不适合我。
我正在尝试使用 ArgumentMatchers.any(class),但我不断收到 nullInsteadOfMockException。或者我如何才能让它以另一种方式工作。
doNothing().when(ArgumentMatchers.any(Class.class)).method();
When() 中的对象不能被模拟。
我尝试过ArgumentMatchers.any(Class.class)
ArgumentMatchers.isA(Class.class)
ArgumentMatchers.<Class>any()
他们都给了我一个 nullInsteadOfMockException。
如果你不能像这样调用mock,我如何告诉mockito,无论when()中是什么类型的Class对象,在调用该方法时都不执行任何操作。
编辑: 我读得越多,看起来我需要使用 powermockito,但我还不确定。
你的论点都混淆了。正确的调用必须如下所示:
doNothing().when(yourMockObject).yourMethod(ArgumentMatchers.any(Class.class));
这将匹配诸如
yourMockObject.yourMethod(String.class)
之类的调用。
匹配器本身记录已被内部调用,然后简单地返回
null
。 doNothing().when(null)....
显然是错误的,因为你只能在非 null 实例上存根方法 - 而且你无论如何也不能在 null 上调用方法。