unit-testing - 使用 Mockoon 和 Nunit 模拟 API 调用进行单元测试

标签 unit-testing .net-core asp.net-web-api mocking nunit

我是 Nunit 的新手,并且有一些为 .NET 6 Web API 应用程序执行 API 调用的测试。我想通过删除这些外部依赖项将它们转换为真正的单元测试。我正在研究 mock 并发现 Mockoon .

我将如何模拟 API 调用?我可以用 Mockoon 来做吗?

我不确定如何以编程方式更改 API 调用以指向仅用于测试的模拟 API。

最终目标是在 GitHub Actions 中自动化测试,但由于测试具有外部依赖项,因此需要首先模拟这些测试。 Mockoon 提供了一个 CLI 来部署在 GitHub Actions 中。

我的项目是在 VS Code 中创建的,因此我不确定 Visual Studio 实用程序是否有助于配置。

如果您需要更多信息,请告诉我。谢谢!

最佳答案

我认为这是一个有点广泛的问题。但这里有一些想法。 在我看来,纯单元测试应该以编程方式模拟 API,而不是依赖于 Mockoon 等外部应用程序。

您想要做的似乎更像是集成测试,您的代码正在调用外部 API,只不过您不是维护专门用于测试/QA 目的的原始 API 实例,而是维护一个模拟(使用 Mockoon )。

那么,总体思路大致如下:

  • 您可以通过 UI 在本地使用 Mockoon 准备模拟 API。
  • 你保存了 Mockoon 的 data file在存储库中。
  • 在 GitHub Actions 工作流程中,您可以安装 Mockoon CLI 并以数据文件 ( relevant tutorial ) 为目标启动它。
  • 您运行应用程序测试并修改包含 API URL 的环境变量以指向 CLI 正在运行的情况(可能类似于 http://localhost:3000)。

关于unit-testing - 使用 Mockoon 和 Nunit 模拟 API 调用进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73625294/

相关文章:

c# - 单元测试命名管道

unit-testing - jUnit fail() 约定

unit-testing - 在 go api 调用中测试

.net-core - 如何在 Azure 函数中配置 HttpClient

c# - .net core 5 中具有参数依赖关系的全局过滤器

java - 使用 jUnit 进行数据驱动测试

c# - 引用类型 '' 声称它在 'System.Web' 中定义,但找不到

asp.net-core - 使用 GenerateChangePhoneNumberTokenAsync() 来确认电子邮件而不是电话号码是否可以接受?

javascript - ExtJS GET 操作在 FireFox 中存储返回 500

c# - Entity Framework 4 问题