【发布时间】:2023-03-20 21:15:02
【问题描述】:
我有一个从公共 api 获取数据的 C# 库。
试图进入 TDD 并想知道如何对一个库进行单元测试,它的主要重点是从服务器获取数据并将 json 转换为 .net 对象。 (基本上处理 http 请求以及限制和错误处理以及一些配置设置)
我知道您应该模拟某种数据库,但不确定如何模拟。而且我已经读到即使关闭互联网连接,测试也应该一直运行。
【问题讨论】:
-
如果你使用
HttpClient,你可以模拟HttpClientHandler。 -
您可能应该将“获取数据”作为服务层与“转换为 .net 对象”作为纯域分开。在这种情况下,您可以设计没有外部依赖关系的类,并用良好的单元测试覆盖它们,这需要互联网连接。至于服务层,它应该是薄的和辅助的。你可以用集成测试来覆盖它。
-
我想我会试试约翰的建议。在考虑了所有选项之后。我希望能够测试与 HttpClient 对象相关的东西,因为会有与之密切相关的错误处理
标签: c# unit-testing http