java - Mockito java - 使用不同参数的测试方法调用

标签 java junit mockito junit4

我正在尝试测试此方法,以查看是否在不带参数的情况下调用了 searchProfile:

public void searchProfile(Long searchTerm) {
    this.searchTerm = searchTerm;
    searchProfile();
}

public void searchProfile() {
     //...
}

这是我的测试用例,我用一个参数调用方法,并期望调用没有参数的方法

@Test
public void testSearchProfile() throws Exception {
    CustomerProfileController sutStub = Mockito.mock(CustomerProfileController.class);

    doNothing().when(sutStub).searchProfile();

    sutStub.searchProfile(0L);

    verify(sutStub, times(1)).searchProfile();
}

我怎样才能使这项工作?现在它只是给我一个错误:

Comparison Failure:

Expected: customerProfileController.searchProfile();

Actual: customerProfileController.searchProfile(0);

最佳答案

你应该使用

Mockito.when(sutStub.searchProfile(Mockito.anyLong())).thenCallRealMethod();

准备模拟时。

关于java - Mockito java - 使用不同参数的测试方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40886026/

相关文章:

Java:线程是否以我的应用程序结束

java - 使用 Mockito,如何 stub 返回类型为 void 的方法,该方法在传递某个参数时抛出异常?

java - 如何使用 Mockito 模拟我的父类(super class)的方法

junit - InetAddress 静态方法不模拟 PowerMockito

java - 我们可以使用 mockito 模拟 spy 对象吗?

java - setSupportActionBar(toolbar) 即使导入 android.support.v7.widget.Toolbar 后也会出现运行时错误

java - Libgdx 从图像或可绘制对象中获取纹理

java - 如何在 ANTLR 中走 if-else block ?

java - Mockito 使用模拟对象测试 DAO

Java 7 cobertura 代码分支覆盖字符串 switch 语句