我的自定义HttpClient休息模板需要一个模拟服务器来进行测试

时间:2019-06-20 21:59:47

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

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

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

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

2 个答案:

答案 0 :(得分:0)

在容器中使用MockServer,由于代码构建的复杂性和理解成为测试的一部分,TestServer给出了令人讨厌的长期结果

答案 1 :(得分:0)

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

  • HTTP响应存根,可在URL /路径,标头,Cookie和 身体内容模式
  • 库可用于单元测试和集成测试
  • 作为独立进程运行,作为Windows服务,Azure / IIS或docker
  • 可通过流畅的DotNet API,JSON文件和HTTP上的JSON配置
  • 记录/播放存根(代理)
  • 每个请求的条件代理
  • 状态行为模拟
  • 使用把手和扩展程序响应模板/转换
  • 可以在本地或CI / CD方案中使用。