无法在eclipse

时间:2017-02-15 05:03:26

标签: java eclipse mockito

我正在尝试使用Mockito对调用方法的次数进行一些验证,但我在所有可以找到的教程中看到的语法在eclipse中导致“未解决的编译问题”错误。我正在嘲笑的课程是:

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的新手,我还没有弄清楚如何从终端运行测试。

2 个答案:

答案 0 :(得分:3)

你需要包含一个参数匹配器,例如: anyString()

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

答案 1 :(得分:1)

profileFields:['id', 'email', 'link', 'locale', 'name',
  'timezone', 'updated_time', 'verified', 'displayName']

使用上面的句子