用途:验证 .NET API 的完整请求管道,覆盖从 HTTP 请求到数据库的端到端集成测试。
主要能力:使用 WebApplicationFactory 启动内存测试服务器;用 Testcontainers 在 Docker 中运行真实 PostgreSQL;用 Respawn 在测试之间快速清理数据库;提供 TestAuthHandler 假认证处理器及认证辅助,可模拟不同用户、角色和权限。资料同时给出测试项目结构、项目文件与各基础设施类的模板。
使用方式:按 tests/{name}.Api.IntegrationTests 建立测试项目,引用 FluentAssertions、Microsoft.AspNetCore.Mvc.Testing、Respawn、Testcontainers.PostgreSql、xunit 等包,并引用 api 与 infrastructure 项目。在 IntegrationTestWebAppFactory 中替换 DbContextOptions 为容器连接串、替换认证方案为 TestScheme、按需用 Fake 替换外部服务,并通过 InitializeAsync 启动容器和执行迁移。测试继承 BaseIntegrationTest,用 AuthenticateAs/AuthenticateAsAdmin 设置请求头,用 GetAsync/PostAsync 等发起请求,用 AddAsync/FindAsync 准备和验证数据。
限制:资料标注目标框架 net8.0,未提供价格、平台支持范围、性能数据或效果保证;测试用例与具体实体、路由、请求类型需按项目实际改写。