2013-11-23 158 views
-1

我有一個對象,可能爲空。如何驗證方法從未在空對象上調用過?

我想驗證當一個對象爲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 

如何驗證我的方法不調用一個空對象?

+0

你的意思是'對象引用'不是'null'對嗎? – Prateek

+0

相反,我想驗證在無效對象上調用* NO *方法。 –

+1

我想這就是你要找的東西http://stackoverflow.com/questions/271526/avoiding-null-statements-in-java – Prateek

回答

2

您不能對空對象引用使用模擬操作。

但是,如果在你的空對象引用上調用任何方法,那麼你會得到一個NPE - 這應該會失敗(除非你期望NPE,當然)。

如果這是測試結果的一部分,您也可以使用assertNull()來確保str實際上是空的。

相關問題