【问题标题】:Need a mock server for my custom HttpClient rest template to test with我的自定义 HttpClient 休息模板需要一个模拟服务器来测试
【发布时间】:2019-06-20 21:59:47
【问题描述】:

我的库返回的自定义身份验证休息模板是 HttpClient。我需要一个库,它可以让我将我的休息模板绑定到模拟服务器,以便我可以测试我的模板。我对 .Net Core 中的 TestServer 寄予厚望,但它有自己的 TestServer.CreateClient() 和特殊的 HttpMessageHandler。似乎没有办法使用我自己的休息模板。我将 WireMock 用于其他一些基本的预设请求和响应内容,但我确实需要将此模板绑定到我的测试服务器,就像您在此处看到的 Java 的 MockRestSesrviceServer 中看到的那样。 https://www.baeldung.com/restclienttest-in-spring-boot(第 2 节)。

我环顾四周,没有找到一个允许在 .NET Core 中进行这种类型的绑定。我对mockhttp 寄予厚望,但似乎无法与您自己的 HttpClient 绑定。有错过吗?有没有办法用 TestServer 做到这一点,还是有另一个我错过的库可以做到这一点?感谢您的任何意见。这已经是几个星期了。

我应该提到这是我正在开发的 lib/nuget 包,因此我没有在 src 项目中内置 Web 启动类来进行测试。我必须创建任何东西来播种类似于 startup.cs 的 webproject 配置,如果可行的话,我愿意这样做。

【问题讨论】:

  • 又一个尘兔奖来了。 :)

标签: c# unit-testing .net-core integration-testing mockserver


【解决方案1】:

在容器中使用 MockServer ,由于代码构建的复杂性和理解成为测试的一部分,TestServer 会给出相当糟糕的长期结果

【讨论】:

    【解决方案2】:

    也许WireMock.Net 可以在这种情况下为您提供帮助?

    • HTTP 响应存根,可在 URL/路径、标头、cookie 和 正文内容模式
    • 库可用于单元测试和集成测试
    • 作为独立进程、Windows 服务、Azure/IIS 或 docker 运行
    • 可通过流畅的 DotNet API、JSON 文件和 HTTP 上的 JSON 进行配置
    • 存根的记录/回放(代理)
    • 按请求条件代理
    • 有状态的行为模拟
    • 使用 Handlebars 和扩展的响应模板/转换
    • 可在本地或 CI/CD 场景中使用。

    【讨论】:

    • 我使用wiremock 处理不需要模板的罐装http 请求和响应。
    猜你喜欢
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多