java - 如何使用 Mockito 模拟服务?

标签 java junit mockito

我有一个 spring shell 应用程序。我需要测试命令。我的命令:

@Autowired
private RemoteService remoteService;

@ShellMethod
public String list(){
    List<String> items= remoteService.getAll();
    return items.toString();
}

我的测试:

@Test
public void listCommandTest(){
    RemoteService remoteService=mock(RemoteService.class);
    when(remoteService.getAll()).thenReturn(new ArrayList<>());

    shell.evaluate(()->"list");

    verify(remoteConfigService).getAll();
}

我不需要调用 RemoteService 的真正方法 getAll(),但它被调用了。如何解决?

最佳答案

您正在模拟 when(remoteService.getAll(anyString())) 方法,并且正在调用 getAll()

when(remoteService.getAll(anyString())) 替换为 when(remoteService.getAll())

关于java - 如何使用 Mockito 模拟服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50059638/

相关文章:

java - 动态显示和隐藏 JFrame 装饰

java - "<"或 ">"运算符如何溢出?

java - Spring Batch 多步骤与单步骤

java - 如何在 Vaadin 8 中以声明方式指定 CSS 类名?

java - 在 JUnit 中使用 @SuiteClasses 注释和使用类数组之间的区别

java - Grizzly 单元测试中的 Jersey 出现异常

java - 配置 mockito 以在验证错误消息中打印实际参数值

java - 如何最好地测试 Java 代码?

java - @ReplaceWithMock 不使用 Springmockito 注释进行模拟

java - 在 Android 代码中模拟创建 AsyncTasks 和 Intents 的优雅方法