用途:NUnit 是 .NET 平台上历史悠久、功能丰富的测试框架,源自 JUnit,适合复杂测试搭建与遗留项目迁移。该技能用于在编写 C#/F# 单元测试、测试 .NET 应用时提供 NUnit 测试辅助。
主要能力:支持基于约束的断言模型,推荐使用 Assert.That() 语法编写表达性断言;支持参数化与组合测试,通过 [TestCase] 和 [Combinatorial] 生成测试矩阵;支持测试夹具([TestFixture]、[SetUp]、[OneTimeSetUp]);支持 Assert.Multiple 块,一次运行块内全部断言并报告所有失败而非首个失败即终止;可用于 ASP.NET Core Web API、微服务及 Unity 游戏脚本测试。
使用方式:在测试项目中引用 NUnit.Framework,用 [TestFixture] 标注测试类,[Test] 标注测试方法,[SetUp] 做每个测试前的初始化,[OneTimeSetUp] 做夹具级共享初始化。参数化用 [TestCase(1, 2, 3)] 传入内联参数。断言使用 Assert.That(actual, Is.EqualTo(expected)) 等约束写法。可添加 [assembly: Parallelizable(ParallelScope.Fixtures)] 启用并行执行。
适用场景:企业级 .NET 应用的单元测试、需要参数化或组合覆盖的测试、需要表达性断言的场景、ASP.NET Core 与 Unity 项目测试。
限制与注意事项:现代 NUnit 已弃用旧式 Assert.AreEqual(),建议统一使用约束模型;慢速集成初始化应使用 [OneTimeSetUp] 而非 [SetUp];并行夹具不应修改静态共享状态;测试方法应聚焦单一业务行为。常见问题:若提示找不到测试,需安装 NUnit3TestAdapter 与 Microsoft.NET.Test.Sdk;SetUp 中出现 NullReferenceException 通常因字段未在 [SetUp] 中初始化。具体安装命令与版本信息暂未提供。