SuperAPI AI 工具集

csharp-testing

测试与质量

查看项目

更新于 10-15 20:31

技能介绍

用途:为 C#/.NET 项目编写行为测试,优先覆盖有风险的业务行为而非简单 getter。技术栈以 xUnit 为主(仓库已用 NUnit 则沿用),HTTP 场景针对 aspnet-core,数据层涉及 entity-framework。

主要能力与优先覆盖:认证与归属(403 与 200)、校验与 ProblemDetails(400/422)、变更操作、404/409、领域不变量、以及 bug 回归测试。组织上建议分为 tests/MyApp.UnitTests/ 与 tests/MyApp.Api.Tests/,用 IClassFixture / IAsyncLifetime 共享 factory,命名采用 Method_Scenario_Expected,边界用例用 Theory 表驱动。

用法要点:单元测试用 fake 依赖(如 IClock、IOrderStore)构造 SUT,不接真实 HttpClient,注入 TimeProvider/时钟,避免 DateTime.Now;异步测试用 async Task 并传 CancellationToken。API 测试继承 WebApplicationFactory<Program>,在 ConfigureWebHost 中设置 Testing 环境并通过 ConfigureTestServices 替换依赖,然后 CreateClient() 断言状态码与 JSON 契约,认证可用测试 JWT 或 AddTestAuth。EF 场景建议 Testcontainers 或同 provider 的 SQLite,InMemory 无法验证 unique/FK 等真实约束,并应覆盖 SaveChanges 失败用例。

限制与反模式:避免 Thread.Sleep、mock 整个 DbSet、无必要用 InternalsVisibleTo 测私有实现、测试间共享静态状态、只断言 IsSuccessStatusCode 而不校验契约。资料未提供具体安装命令、版本号、收费与平台信息。完成后以 dotnet test 在范围内通过且稳定为准。