用途
nunit-skill 是一个用于生成 NUnit 3 测试的 C# 技能。当用户提到“NUnit”等关键词时可使用。它围绕 NUnit 3 的常见测试编写模式提供参考,帮助生成符合约束模型与生命周期规范的测试代码。
主要能力
该技能覆盖以下核心模式:
- 基础测试:使用 [TestFixture]、[SetUp]、[Test]、[TearDown] 组织测试类与测试方法,包含断言与异常断言示例。
- 约束模型(Assert.That):提供 Is.EqualTo、Is.Not.EqualTo、Is.GreaterThan、Is.InRange、Does.Contain、Does.StartWith、Has.Count.EqualTo、Has.Member、Is.All.GreaterThan、Is.Null、Is.Not.Null、Is.InstanceOf、Is.EqualTo(...).Within(...) 以及 Throws.TypeOf(...).With.Message.Contains(...) 等约束写法。
- 参数化测试:使用 [TestCase] 内联参数,以及 [TestCaseSource] 配合 IEnumerable<TestCaseData> 与 SetName 命名用例。
- Moq 模拟:使用 Mock<T>、Setup、Returns、It.IsAny、Verify 与 Times.Once 等,对依赖进行模拟与验证。
- 生命周期:说明 [OneTimeSetUp]、[SetUp]、[Test]、[TearDown]、[OneTimeTearDown] 的执行顺序。
- 分类与属性:支持 [Category]、[Ignore]、[Timeout]、[Retry] 等特性。
- 反模式对照:以表格形式列出不良写法与推荐写法及原因,例如使用经典 Assert.AreEqual 对比约束模型 Assert.That、缺少 [SetUp] 对比规范生命周期、测试私有方法对比测试公共 API、缺少分类对比使用 [Category]。
使用方式
安装命令:
dotnet add package NUnit NUnit3TestAdapter Microsoft.NET.Test.Sdk
运行命令:
dotnet test 或 dotnet test --filter TestCategory=Smoke
对于高级模式、调试指南、CI/CD 集成与最佳实践,可参阅 reference/playbook.md。
适用场景
适用于在 C# 项目中编写 NUnit 3 单元测试,尤其是需要约束模型断言、参数化用例、依赖模拟与测试生命周期管理的场景。
限制
资料未提供该技能的收费、价格、平台支持范围或效果保证等信息,暂未提供。