用途:帮助开发者用现代 MSTest(3.x/4.x)编写有效的 C# 单元测试,采用当前 API 与最佳实践。
主要能力与要点:项目建议使用独立测试项目,命名 [ProjectName].Tests,引用 MSTest 3.x+ NuGet 包(含分析器),可考虑使用 MSTest.Sdk,用 dotnet test 运行。测试类用 [TestClass] 并默认 sealed,测试方法用 [TestMethod](优先于 [DataTestMethod]),遵循 Arrange-Act-Assert,命名采用 MethodName_Scenario_ExpectedBehavior。
生命周期:优先用构造函数而非 [TestInitialize],[TestCleanup] 处理必须清理的逻辑,异步初始化可结合构造函数与 async [TestInitialize]。执行顺序涵盖程序集/类初始化与清理、每测试的构造、TestContext 赋值、初始化、执行、清理与 Dispose。
断言:Assert、StringAssert、CollectionAssert 三类;异常测试优先用 Assert.Throws/ThrowsExactly/ThrowsAsync 系列,而非 [ExpectedException];提供集合、字符串、比较、类型断言;MSTest 4.0+ 可用 Assert.That 自动捕获表达式。
数据驱动:支持 [DataRow]、[DynamicData];数据源推荐 ValueTuple 或 TestDataRow,object[] 无类型安全。TestContext 支持构造函数注入、取消令牌、测试属性与输出、结果文件等。高级特性含 [Retry]、[OSCondition]、[CICondition]、[Parallelize]、[DoNotParallelize]、WorkItem/GitHubWorkItem。
限制:资料未提供版本兼容细节、性能数据或官方文档链接;示例 API 随版本演进,使用时需对照实际 MSTest 版本。