如何验证从未在null对象上调用方法?

时间:2013-11-23 00:26:58

标签: java mockito

我有一个可能为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对象上调用?

1 个答案:

答案 0 :(得分:2)

您不能对空对象引用使用模拟操作。

但是如果在你的null对象引用上调用了任何方法,那么你将得到一个NPE - 这应该会使你的测试失败(当然,除非你期待NPE)。

如果这是测试结果的一部分,您还可以使用assertNull()确保str实际上为空。