【问题标题】:Junit Testing a method that call rest apiJunit测试调用rest api的方法
【发布时间】:2019-12-15 13:36:55
【问题描述】:

情况就是这样,我有一个休息客户端应用程序来完成所有的休息调用。例如。我可以在其他应用程序中调用 api 类并使用它。

API api = new API();
api.setPath(....)
api.idget(...) something

所以现在,我需要为我当前调用 api 并从 api.idget(String num) 获取 id 并使用 id 做其他事情的方法编写 Junit 测试。

我应该如何测试这个方法?

我曾尝试使用 Mockito mock 来模拟 API

@Mock
API api;

Mockito.when(api.idget(.....).thenReturn(something)

我很困惑我应该如何测试这个方法。通过使用模拟方法,我在 when() 需要一个必须是模拟方法调用的参数时得到错误。 很抱歉,我无法提供实际代码。任何事情都会有所帮助。

【问题讨论】:

  • 请提供minimal reproducible example,而不是模糊的描述。您还可以考虑使用 Wiremock 来测试实际请求。
  • 没有代码这只是一个猜测,但你可以试试这个:when(api.idget(any(String.class))).thenReturn(something);

标签: java junit mockito


【解决方案1】:

你是对的。你需要使用 Mockito.when()

你需要在 Mockito.when 上调用正确的方法

如果你能提供完整的例子,我们可以告诉你现在该做什么,唯一的猜测是,你在调用你的方法时不带参数

Mockito.when(api.idget("5")).thenReturn(something)

请注意 idget 调用后的右括号 ')' - 您在示例中缺少它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    相关资源
    最近更新 更多