【问题标题】:Integration Testing with a fake server使用假服务器进行集成测试
【发布时间】:2016-04-18 19:14:03
【问题描述】:

我有一个服务,它连接到我想要测试的一组 api。

我想为我的集成测试制作一个假服务(以模拟失败情况)

我不能简单地使用@RestController,因为它们在测试期间没有加载,我查看了 mockserver 但我不确定它是否是我正在寻找的,因为我不希望我的测试触发模拟调用,但是而是我的代码应该正常触发 api 调用,只需使用模拟服务器而不是实际服务器(基本 url 是可配置的,因此我可以使我的服务指向模拟服务器)

更新 1:

我看到的唯一选择可能是启动 Cargo 并在其中部署我的服务?

更新 2: 我刚刚发现了 Wiremock。这里可以用吗?

【问题讨论】:

  • 你尝试过 Spring MVC 测试吗?
  • 我不想测试弹簧控制器。

标签: java testing tdd wiremock


【解决方案1】:

我选择了 WireMock http://wiremock.org/

在 junit 测试中设置 ClassRule 将使假服务器在测试开始之前启动并运行。

【讨论】:

    【解决方案2】:

    Mockito(http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/Mockito.html) 是一个很好的模拟方法调用的库。它可以在给定特定输入的情况下返回特定值。使用这个库,您可以模拟一个 REST 客户端来模拟您的应用程序和 REST api 之间的通信。

    【讨论】:

    • 不幸的是,我的 api 调用是在上下文启动时触发的,因此尝试在 BeforeClass 中模拟它们将毫无用处,因为尚未加载内容,而在 Before 中为时已晚
    猜你喜欢
    • 2018-06-11
    • 2022-08-20
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2013-02-16
    相关资源
    最近更新 更多