【问题标题】:Unit testing http requests to rest api对rest api的http请求进行单元测试
【发布时间】:2023-03-20 21:15:02
【问题描述】:

我有一个从公共 api 获取数据的 C# 库。 试图进入 TDD 并想知道如何对一个库进行单元测试,它的主要重点是从服务器获取数据并将 json 转换为 .net 对象。 (基本上处理 http 请求以及限制和错误处理以及一些配置设置)
我知道您应该模拟某种数据库,但不确定如何模拟。而且我已经读到即使关闭互联网连接,测试也应该一直运行。

【问题讨论】:

  • 如果你使用HttpClient,你可以模拟HttpClientHandler
  • 您可能应该将“获取数据”作为服务层与“转换为 .net 对象”作为纯域分开。在这种情况下,您可以设计没有外部依赖关系的类,并用良好的单元测试覆盖它们,这需要互联网连接。至于服务层,它应该是薄的和辅助的。你可以用集成测试来覆盖它。
  • 我想我会试试约翰的建议。在考虑了所有选项之后。我希望能够测试与 HttpClient 对象相关的东西,因为会有与之密切相关的错误处理

标签: c# unit-testing http


【解决方案1】:

您只能实施集成测试。您还可以在关闭互联网连接的情况下测试您的代码 - 只需创建一种包装器。在各种设计模式中,最适合这种任务的是 Facade。围绕第三方库创建外观,以便您将来可以模拟此外观并使其产生所需/不希望的结果,以便您可以对类进行单元测试。但: 不要测试或模拟你不拥有的东西

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 2015-06-01
    • 2017-06-05
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    相关资源
    最近更新 更多