ASP.NET Core 最小 API 的集成测试
简介
这个示例项目展示了你可以用于对使用最小 API功能的 ASP.NET Core Web 应用程序进行集成测试的技术。
该示例中被测试的系统使用以下技术实现了一个简单的待办事项列表应用程序:
- 最小 API
- 使用 SQLite 的 EFCore
- GitHub OAuth 认证
- Razor Pages
- TypeScript
这些测试展示了如何为应用程序的 API 和用户界面层编写集成测试,这可以帮助你获得对被测系统的良好覆盖,并让你对应用程序的更改已准备好部署到生产系统充满信心。
这些测试包括以下开源库和技术的使用演示:
- coverlet
- HttpClientFactory
- HttpClient Interception
- Playwright
- ReportGenerator
- Shouldly
- WebApplicationFactory<T>
- xunit
- xunit Logging
调试
要在集成测试之外在本地调试应用程序,你需要创建一个 GitHub OAuth 应用程序以获取 GitHub:ClientId
和 GitHub:ClientSecret
选项的密钥,以便 OAuth 用户认证正常工作,并且你可以登录到待办事项应用程序 UI。
💡 创建 GitHub OAuth 应用程序时,使用
https://localhost:50001/sign-in-github
作为 授权回调 URL。⚠️ 不要将 GitHub OAuth 密钥提交到源代码控制中。请使用用户机密来配置它们。
构建和测试
自己编译应用程序需要安装 Git 和 .NET SDK(版本 8.0.100
或更高)。
要从终端/命令行在本地构建和测试应用程序,请运行以下一组命令:
git clone https://github.com/martincostello/dotnet-minimal-api-integration-testing.git
cd dotnet-minimal-api-integration-testing
./build.ps1
反馈
任何反馈或问题都可以添加到 GitHub 上该项目的问题中。
致谢
感谢来自 ASP.NET Core 团队的 David Fowler (@davidfowl),他帮助解决了在使用 ASP.NET Core 6 预发布版本测试这个示例时发现的最小操作问题!
仓库
该仓库托管在 GitHub 上: https://github.com/martincostello/dotnet-minimal-api-integration-testing.git
许可证
这个项目使用 Apache 2.0 许可证。