Skills Plugins MCP Prompt Model 博客 我的中心

nunit-skill

Generates NUnit 3 tests in C#. Covers Assert.That constraint model, parameterized tests, setup/teardown, and Moq mocking. Use when user mentions "NUnit", "[TestFixture]", "[Test]", "Assert.That", "C# unit test". Triggers on: "NUnit", "[Test]", "Assert.That", "C# test", "NUnit3".

DeepseekModel キュレーション済みスキル 品質 優秀 · 78 v1.0.0

取得

https://deepseekmodel.com/api/download.php?id=lambdatest-agent-skills-nunit-skill-skill-md&format=skill
ダウンロード .skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能
.skill ファイルの system_prompt フィールドの実際の内容。
name nunit-skill description Generates NUnit 3 tests in C#. Covers Assert.That constraint model, parameterized tests, setup/teardown, and Moq mocking. Use when user mentions "NUnit", "[TestFixture]", "[Test]", "Assert.That", "C# unit test". Triggers on: "NUnit", "[Test]", "Assert.That", "C# test", "NUnit3". languages ["C#"] category unit-testing license MIT metadata {"author":"TestMu AI","version":"1.0"} NUnit 3 Testing Skill Core Patterns Basic Test using NUnit.Framework; [ TestFixture ] public class CalculatorTests { private Calculator _calculator; [ SetUp ] public void SetUp () => _calculator = new Calculator(); [ Test ] public void Add_TwoPositiveNumbers_ReturnsSum () { Assert.That(_calculator.Add( 2 , 3 ), Is.EqualTo( 5 )); } [ Test ] public void Divide_ByZero_ThrowsException () { Assert.Throws<DivideByZeroException>(() => _calculator.Divide( 10 , 0 )); } [ TearDown ] public void TearDown () { /* cleanup */ } } Constraint Model (Assert.That) Assert.That(actual, Is.EqualTo(expected)); Assert.That(actual, Is.Not.EqualTo(unexpected)); Assert.That( value , Is.GreaterThan( 5 )); Assert.That( value , Is.InRange( 1 , 10 )); Assert.That(str, Does.Contain( "hello" )); Assert.That(str, Does.StartWith( "He" ).IgnoreCase); Assert.That(collection, Has.Count.EqualTo( 3 )); Assert.That(collection, Has.Member( "item" )); Assert.That(collection, Is.All.GreaterThan( 0 )); Assert.That(obj, Is.Null); Assert.That(obj, Is.Not.Null); Assert.That(obj, Is.InstanceOf<MyClass>()); Assert.That(actual, Is.EqualTo( 3.14 ).Within( 0.01 )); Assert.That(() => Method(), Throws.TypeOf<ArgumentException>() .With.Message.Contains( "invalid" )); Parameterized Tests [ TestCase(2, 3, 5) ] [ TestCase(-1, 1, 0) ] [ TestCase(0, 0, 0) ] public void Add_ReturnsCorrectSum ( int a, int b, int expected ) { Assert.That(_calculator.Add(a, b), Is.EqualTo(expected)); } [ TestCaseSource(nameof(DivisionCases)) ] public void Divide_ReturnsCorrectQuotient ( int a, int b, double expected ) { Assert.That(_calculator.Divide(a, b), Is.EqualTo(expected).Within( 0.01 )); } private static IEnumerable<TestCaseData> DivisionCases () { yield return new TestCaseData ( 10 , 2 , 5.0 ). SetName ( "10/2=5" ) ; yield return new TestCaseData ( 7 , 3 , 2.33 ). SetName ( "7/3=2.33" ) ; } Mocking with Moq using Moq; [ TestFixture ] public class UserServiceTests { private Mock<IUserRepository> _mockRepo; private Mock<IEmailService> _mockEmail; private UserService _service; [ SetUp ] public void SetUp () { _mockRepo = new Mock<IUserRepository>(); _mockEmail = new Mock<IEmailService>(); _service = new UserService(_mockRepo.Object, _mockEmail.Object); } [ Test ] public void CreateUser_SavesAndSendsEmail () { _mockRepo.Setup(r => r.Save(It.IsAny<User>())).Returns( new User { Id = 1 }); var result = _service.CreateUser( "alice@test.com" , "Alice" ); Assert.That(result.Id, Is.EqualTo( 1 )); _mockRepo.Verify(r => r.Save(It.IsAny<User>()), Times.Once); _mockEmail.Verify(e => e.SendWelcome( "alice@test.com" ), Times.Once); } } Lifecycle [OneTimeSetUp] → Before all tests in fixture [SetUp] → Before each test [Test] → Test method [TearDown] → After each test [OneTimeTearDown] → After all tests in fixture Categories and Attributes [ Test, Category( "Smoke" ) ] public void QuickTest () { } [ Test, Ignore( "Bug #123" ) ] public void SkippedTest () { } [ Test, Timeout(5000) ] public void TimeLimitedTest () { } [ Test, Retry(3) ] public void FlakyTest () { } Anti-Patterns Bad Good Why Assert.AreEqual(a, b) (classic) Assert.That(a, Is.EqualTo(b)) Constraint model is richer No [SetUp] Proper lifecycle Resource management Testing private methods Test public API Encapsulation No categories [Category("Smoke")] Run subsets Setup: dotnet add package NUnit NUnit3TestAdapter Microsoft.NET.Test.Sdk Run: dotnet test or dotnet test --filter TestCategory=Smoke Deep Patterns For advanced patterns, debugging guides, CI/CD integration, and best practices, see reference/playbook.md .
このスキルを起動するキーワード。クリックでコピーできます。

このスキルにはトリガーワードがありません。

ダウンロードした .skill に含まれるフィールド。
フィールド 説明
formatフォーマット識別子(skill/v1)
skill_idスキル固有 ID
nameスキル名
versionバージョン
description説明
categoryカテゴリ(配列)
trigger_wordsトリガーワード
tagsタグ
sourceソース
source_urlソース URL(本ページ)
exported_atエクスポート日時(ダウンロード毎)
system_promptシステムプロンプト本文
model_configモデル設定:provider / model / temperature / max_tokens / top_p
examplesサンプル
install_guide各プラットフォームの導入説明(Coze / Dify / Claude / カスタム)
同じスキルを各プラットフォーム形式で出力できます。
.skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能 ダウンロード
.skillpro 拡張形式。scripts / tools / dependencies / hooks を含む ダウンロード
.json 純粋な JSON 出力。system_prompt とモデル設定のみ ダウンロード
Coze frontmatter 付き Markdown。Coze へのインポート用 ダウンロード
Dify Dify DSL。アプリ作成後にそのままインポート ダウンロード

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。