2017-02-15 135 views
0

我正在嘗試使用Mockito對一個方法的調用次數進行一些驗證,但是我在所有教程中看到的語法都是導致「未解決的編譯問題「日食中的錯誤。我嘲笑的類是:無法用eclipse中的mockito驗證方法調用

public class ClassToBeMocked { 
    public void methodToVerify(String input) { 

    } 
} 

測試是:

@RunWith(MockitoJUnitRunner.class) 
public class MockitoTest { 
    @Mock ClassToBeMocked mockedClass; 

    @Before 
    public void setUp() throws Exception { 
     this.mockedClass = Mockito.mock(ClassToBeMocked.class); 
    } 

    @Test 
    public void test() { 
     Mockito.verify(mockedClass, Mockito.never()).methodToVerify(); 
    } 
} 

但是當我試圖在Eclipse中運行測試,我得到這個錯誤:

java.lang.Error: Unresolved compilation problem: 
The method methodToVerify(String) in the type ClassToBeMocked is not applicable for the arguments() 

at MockitoTest.test(MockitoTest.java:28) 
at . . . 

在第一次臉紅,錯誤似乎是合乎邏輯的:畢竟,看起來好像我正在調用方法而不傳入所需的參數。但我認爲Mockito會做一些底層的工作來使其發揮作用。

如果我的框架使用不對,那麼我應該如何驗證這個方法?

我正在使用Mockito版本2.7.6。我還沒有嘗試在eclipse之外運行測試,因爲我是java/junit/mockito/maven的新手,我還沒有弄清楚如何從終端運行測試。

回答

3

您需要包含參數匹配器,例如anyString()

Mockito.verify(mockedClass, Mockito.never()).methodToVerify(Mockito.anyString()); 
1
Mockito.verify(mockedClass, Mockito.never()).methodToVerify(anyString()); 

用上面這句話