Java 如何验证从未对空对象调用过方法?
我有一个可能为空的对象 我想验证当一个对象为null时,它的方法没有被调用 我编写了一个测试用例,如下所示:Java 如何验证从未对空对象调用过方法?,java,mockito,Java,Mockito,我有一个可能为空的对象 我想验证当一个对象为null时,它的方法没有被调用 我编写了一个测试用例,如下所示: String str = mock(String.class); str = null; verify(str, never()).length(); 但莫基托回答说: org.mockito.exceptions.base.MockitoException: Cannot mock/spy class java.lang.String Mockito can
String str = mock(String.class);
str = null;
verify(str, never()).length();
但莫基托回答说:
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class java.lang.String
Mockito cannot mock/spy following:
- final classes
- anonymous classes
- primitive types
如何验证我的a方法没有在空对象上调用?不能在空对象引用上使用模拟操作 但是,如果对空对象引用调用了任何方法,那么您将得到一个NPE——当然,这应该会使您的测试失败,除非您期望一个NPE
如果这是测试结果的一部分,您还可以使用来确保str实际上为null。您的意思是对象引用不是null,对吗?相反,我想验证在null对象上没有调用任何方法。我猜这就是您要寻找的。什么?如果在null引用上调用一个方法,您将得到一个NullPointerException,测试也将失败。确保您编写的代码中没有null指针异常并不是Mockito真正要做的。