2017-02-15 83 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()); 

用上面这句话