用途:该技能提供使用 MSTest SDK 为 .NET 后端编写单元测试的指南与模式,项目采用零配置的 SDK 风格测试方案,无需显式引用测试包。
主要能力:介绍后端项目结构(WebApp.sln、WebApp.Api 与 WebApp.Api.Tests 分层)、测试项目配置方式(在项目元素中设置 Sdk="MSTest.Sdk/{version}")、测试组织结构(按被测类组织测试文件),以及测试基本结构(Arrange-Act-Assert)与 [TestClass]、[TestMethod]、[DataRow] 参数化测试的用法。
使用方式:在测试项目中按规范编写测试类;运行命令包括 cd backend 后执行 dotnet test(运行全部测试)、dotnet test --verbosity normal(详细输出)、dotnet test --filter "FullyQualifiedName~ErrorResponseFactoryTests"(按类过滤)、dotnet test --collect:"XPlat Code Coverage"(覆盖率,需 coverlet)。测试命名遵循 MethodName_Scenario_ExpectedBehavior,例如 CreateFromException_WhenDevelopmentMode_IncludesStackTrace。断言参考涵盖相等、可空、布尔、类型、集合与异常(Assert.ThrowsException<T>)。
适用场景:适合验证纯逻辑类,如 ErrorResponseFactory(状态码映射、开发与生产模式差异、异常细节隐藏)、ChatRequest 验证、StreamChunk 序列化与 AnnotationInfo 属性映射等 Models 层单元。
限制:Services 层(如 AgentFrameworkService)不适合纯单元测试,需借助 validating-ui-features 技能配合 Playwright 做集成测试;当测试需要运行中的后端服务器、SSE 流式行为、认证流程或完整聊天请求/响应周期时,单元测试不足,应改用集成测试。具体包版本等细节请参见项目中 WebApp.Api.Tests.csproj 的当前配置。