gpt4 book ai didi

grails - 在 Grails Spock 集成测试中模拟

转载 作者:行者123 更新时间:2023-12-02 14:49:47 24 4
gpt4 key购买 nike

我有 grails 休息 api 应用程序,它通过服务在内部调用外部休息 api。我想在进行集成测试用例时模拟外部 api 调用服务。在集成测试用例中,我将请求发布到应用程序 rest api。由于我无法模拟外部 API,因此如果无法访问外部 API,它将失败。
那么如何模拟在集成测试用例中调用外部 API 的服务。

最佳答案

在您的配置中包含指向外部 API 的 URL,以便您可以模拟它,假设它的配置键名为 myConfigValue .安装 WireMock并包含一个测试服务器作为 JUnit 规则:

@Rule
WireMockRule mockServer = new WireMockRule(WireMockConfiguration.wireMockConfig().port(9900))

将模拟服务器的 URL 输入到您的测试中,如 the Grails manual 中所述。 :
static doWithConfig(c) {
c.myConfigValue = "http://localhost:9900/"
}

然后使用 WireMock 的 API 来验证外部调用并 stub 响应,例如
stubFor(get(urlEqualTo("/binary-body"))
.willReturn(aResponse()
.withBody(new byte[] { 1, 2, 3, 4 })));

检查他们的文档以了解可能的情况。有 WireMock 的替代品,但没有一个对我们如此有效。

关于grails - 在 Grails Spock 集成测试中模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com