gpt4 book ai didi

c# - 如何使用 visual studio 验证 swagger rest API

转载 作者:行者123 更新时间:2023-11-30 23:23:32 26 4
gpt4 key购买 nike

我不熟悉 API 测试以及使用 Swagger Rest API。我正在寻找有关如何验证来自 swagger 的 POST 请求 Rest API 调用的示例。我正在尝试弄清楚如何在 C# 中的 visual studio 2015 版中编写用于验证 swagger REST API 的单元测试。

请告诉我如何继续,如果您有任何示例可以让它发挥作用,那么这对我来说真的是一个很大的帮助。

谢谢,安努沙

最佳答案

以下是在 Visual Studio 上下文中测试 API 项目时需要考虑的一些事项。

请注意,此建议与运算符(operator)的问题有所不同,因为 (1) 除了单元测试之外还涉及集成测试,并且 (2) 仅讨论 Visual Studio 2017(未按要求讨论 2015)。

在端点测试 API(集成测试和验收)

这是 Swagger 直接帮助的测试级别。

Dredd可以采用不同的规范类型——即 Open API/Swagger 和 API Blueprint——并调用 example transactions .对使用 API Blueprint 执行此操作的支持似乎比使用 Swagger 更好,IMO。

有很多 Javascript 工具可以帮助生成测试和模拟,例如 swagger-test-templates , 赃物。 Mocha、Chai 和 Jest 是这方面的流行工具。

一些专门从事此级别测试管理的服务:例如,SauceLabs,Ready! API,断言。其他流行的工具是免费的并与测试管理平台集成:例如 SwaggerInspector 和 SoapUI。

Visual Studio 2017 Enterprise 具有 webtest feature ,这在 Visual Studio Team Services Cloud-based Load Testing 中也受支持产品。这在 VSTS 中有很好的集成,因此您可以在 Build 上触发网络测试。不过这个工具是面向性能测试的(不知道集成测试用的多好)。这是 an example of recording and replaying calls with Swagger UI and Visual Studio .

另一种更复杂的方法(已在评论中暗示)是编写基本单元测试,手动进行 API 调用(而不是某种请求/响应框架)。作为快捷方式,您可以使用 Visual Studio 从 Swagger 生成 API 客户端或 NSwag .然后,在您的单元测试中,使用生成的客户端调用您的 API。或者,您可以只使用 .NET 库来发出请求和检查响应。我建议考虑将基于 Javascript 的测试与 Visual Studio 集成,而不是用 C# 编写这些测试。

这里有一些(不太有条理的)关于集成测试的想法......

  • 自己指定测试(请求/响应)——就像在 API 蓝图规范中一样
  • 为测试生成模拟和模板(然后完成指定它们)- swagger-test-templates 或 SwagMock)
  • 录制和回放 -(例如,Visual Studio 网络测试和 Jest)
  • 服务虚拟化 - Mountebank、Wiremock、MockServer

单元测试模型、 Controller 、服务等

这些与前面测试 API 端点的示例不同,被认为是单元测试事件。如 this example of testing controllers in ASP.NET Core 中所示,棘手的部分可能是重构您的代码 支持依赖注入(inject),以防你想在测试时换出数据库或服务。

关于c# - 如何使用 visual studio 验证 swagger rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330632/

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