mcpField
C
csharp-nunit

csharp-nunit

github.com/midudevテスト・品質7.0k59 回インストール1 週間前に更新
リポジトリ

csharp-nunit について

NUnit で .NET のユニットテストを書く開発者向けの実践ガイドです。テスト構成、アサーション、データ駆動テスト、依存関係の分離を扱います。

主な機能

  1. 01Arrange-Act-Assert 構成の採用
  2. 02NUnit のテスト・ライフサイクル属性
  3. 03パラメーター化データによるケース網羅
  4. 04制約モデルを使ったアサーション
  5. 05テスト整理と依存関係の分離

活用シーン

  1. 01クラス単位の独立したユニットテスト設計
  2. 02複数の入力値と境界条件の網羅
  3. 03例外と非同期動作の検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/midudev/autoskills --skill csharp-nunit

インストール後、Claude Code で/csharp-nunitを入力して読み込まれたか確認します。

詳細

NUnit ベストプラクティス

あなたの目標は、標準的なテスト手法とデータ駆動型テスト手法の両方をカバーし、NUnit を使用して効果的な単体テストを作成できるよう支援することです。

プロジェクトのセットアップ

  • 命名規則 [ProjectName].Tests に従った、独立したテストプロジェクトを使用してください
  • Microsoft.NET.Test.Sdk、NUnit、および NUnit3TestAdapter パッケージを参照してください
  • テスト対象のクラスに対応するテストクラスを作成してください(例: Calculator に対して CalculatorTests)
  • .NET SDK のテストコマンドを使用してください: テストの実行には dotnet test

テストの構造

  • テストクラスに [TestFixture] 属性を適用してください
  • テストメソッドには [Test] 属性を使用してください
  • Arrange-Act-Assert(AAA)パターンに従ってください
  • テストの名前には MethodName_Scenario_ExpectedBehavior というパターンを使用してください
  • テストごとのセットアップとティアダウンには [SetUp] と [TearDown] を使用してください
  • クラスごとのセットアップとティアダウンには [OneTimeSetUp] と [OneTimeTearDown] を使用してください
  • アセンブリレベルのセットアップとティアダウンには [SetUpFixture] を使用してください

標準的なテスト

  • テストは単一の振る舞いに焦点を絞ってください
  • 1 つのテストメソッドで複数の振る舞いをテストすることは避けてください
  • 意図を表現する明確なアサーションを使用してください
  • テストケースの検証に必要なアサーションのみを含めてください
  • テストを独立させ、冪等にしてください(どの順序でも実行可能)
  • テスト間の相互依存を避けてください

データ駆動型テスト

  • インラインのテストデータには [TestCase] を使用してください
  • プログラムで生成するテストデータには [TestCaseSource] を使用してください
  • 単純なパラメーターの組み合わせには [Values] を使用してください
  • プロパティまたはメソッドベースのデータソースには [ValueSource] を使用してください
  • ランダムな数値のテスト値には [Random] を使用してください
  • 連続する数値のテスト値には [Range] を使用してください
  • 複数のパラメーターを組み合わせるには [Combinatorial] または [Pairwise] を使用してください

アサーション

  • 制約モデルとともに Assert.That を使用してください(NUnit で推奨されるスタイル)
  • Is.EqualTo、Is.SameAs、Contains.Item などの制約を使用してください
  • 単純な値の等価性には Assert.AreEqual を使用してください(クラシックスタイル)
  • コレクションの比較には CollectionAssert を使用してください
  • 文字列固有のアサーションには StringAssert を使用してください
  • 例外をテストするには Assert.Throws<T> または Assert.ThrowsAsync<T> を使用してください
  • 失敗時の明確さのために、アサーションには説明的なメッセージを含めてください

モックと分離

  • NUnit と併用して Moq や NSubstitute の使用を検討してください
  • テスト対象のユニットを分離するために依存関係をモックしてください
  • モックを容易にするためにインターフェイスを使用してください
  • 複雑なテストのセットアップには DI コンテナーの使用を検討してください

テストの整理

  • 機能またはコンポーネントごとにテストをグループ化してください
  • [Category("CategoryName")] でカテゴリを使用してください
  • 必要な場合には [Order] でテストの実行順序を制御してください
  • 所有権を示すには [Author("DeveloperName")] を使用してください
  • テストに関する追加情報を提供するには [Description] を使用してください
  • 自動的に実行すべきでないテストには [Explicit] の使用を検討してください
  • テストを一時的にスキップするには [Ignore("Reason")] を使用してください

コメント