我有一个可能为null的Object。
我想验证当一个对象为null时,不会调用它的方法。
我写了一个看起来像这样的测试用例:
String str = mock(String.class);
str = null;
verify(str, never()).length();
但Mockito回复:
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class java.lang.String
Mockito cannot mock/spy following:
- final classes
- anonymous classes
- primitive types
如何验证我的方法是否未在null对象上调用?
答案 0 :(得分:2)
您不能对空对象引用使用模拟操作。
但是如果在你的null对象引用上调用了任何方法,那么你将得到一个NPE - 这应该会使你的测试失败(当然,除非你期待NPE)。
如果这是测试结果的一部分,您还可以使用assertNull()确保str
实际上为空。