次の方法で共有


MSTest 設計規則

設計規則は、適切な設計と適切なプラクティスに準拠したテスト スイートの作成と保守に役立ちます。 これらのルールは、テスト構造、ベスト プラクティス、および保守可能なテスト コードにつながる一般的なパターンに焦点を当てています。

このカテゴリのルール

ルール ID Title Severity 修正完了
MSTEST0004 パブリック型はテスト クラスである必要があります。 Info イエス
MSTEST0006 ExpectedException 属性は使用しないでください。 Info イエス
MSTEST0015 テスト メソッドは無視しないでください。 なし (オプトイン) いいえ
MSTEST0016 テスト クラスにはテスト メソッドが必要です。 Info いいえ
MSTEST0019 コンストラクターよりも TestInitialize を優先します。 なし (オプトイン) イエス
MSTEST0020 TestInitialize よりもコンストラクターを優先します。 なし (オプトイン) イエス
MSTEST0021 TestCleanup よりも Dispose を優先します。 なし (オプトイン) イエス
MSTEST0022 Dispose よりも TestCleanup を優先します。 なし (オプトイン) イエス
MSTEST0025 常にfalseになる条件よりもAssert.Failを優先してください。 Info イエス
MSTEST0029 パブリック メソッドはテスト メソッドである必要があります。 Info イエス
MSTEST0036 シャドウは使用しないでください。 Warnung いいえ
MSTEST0044 DataTestMethod よりも TestMethod を優先します。 Info イエス
MSTEST0045 タイムアウトには協調キャンセルを使用します。 Info イエス

一般的なシナリオ

テスト クラスの構造

テスト クラスを作成する場合、次の規則は適切な設計を保証するのに役立ちます。

  • MSTEST0004: ヘルパー クラスを内部に保持し、テスト クラスのみをパブリックにする必要があります。
  • MSTEST0016: テスト クラスに少なくとも 1 つのテスト メソッドが含まれていることを確認します。
  • MSTEST0029: テスト クラスのパブリック メソッドはテスト メソッドにする必要があります。

初期化パターン

MSTest では、コンストラクターと TestInitialize メソッドの両方がサポートされています。 これらの相互排他的ルールを使用すると、一貫性のあるパターンを適用できます。

  • MSTEST0019: 初期化に TestInitialize を適用します (非同期シナリオに役立ちます)。
  • MSTEST0020: 初期化にコンストラクターを適用します (読み取りonly フィールドの方が適しています)。

クリーンアップ パターン

同様に、Dispose と TestCleanup のいずれかを選択します。

  • MSTEST0021: クリーンアップに Dispose パターンを適用します。
  • MSTEST0022: クリーンアップのために TestCleanup を強制します。

アサーションの向上

  • MSTEST0006: 精度を向上させるには、[ExpectedException] の代わりに Assert.ThrowsExactly を使用します。
  • MSTEST0025: Assert.IsTrue(false) の代わりに Assert.Fail を使用します。

テスト品質

  • MSTEST0015: 無視されたテストにフラグを設定します (オプトイン 規則)。
  • MSTEST0036: 基底クラスのメンバーをシャドウしないようにします。
  • MSTEST0044: データドリブン テストが必要な場合を除き、TestMethod を使用します。
  • MSTEST0045: タイムアウト処理のためにキャンセル トークンを有効にします。