MSTEST0025: 常に失敗するアサートではなく 'Assert.Fail' を使う
プロパティ | 値 |
---|---|
ルール ID | MSTEST0025 |
Title | 常に失敗するアサートではなく 'Assert.Fail' を使う |
カテゴリ | デザイン |
修正が中断ありか中断なしか | なし |
既定で有効 | はい |
既定の重要度 | 情報 |
導入されたバージョン | 3.4.0 |
コード修正の有無 | はい |
原因
この規則は、アサーションの呼び出しによって常に false 条件が生成される場合に診断を生成します。
規則の説明
常に失敗するアサーション呼び出しに対して Assert.Fail
を使うと、コードの意図がより明確になり、ドキュメントが改善されます。
常に失敗するアサーション (Assert.IsTrue(false)
など) が発生した場合、コードを読んでいる人にとって、なぜそのアサーションが存在するのか、どのような条件を確認しようとしているのかがすぐにはわからない可能性があります。 これは、後でそのコードに出くわした開発者にとって混乱と時間の無駄につながる可能性があります。
対照的に、 Assert.Fail
を使うと、カスタムのエラー メッセージを指定し、アサーションが失敗する理由と、対処している具体的な条件やシナリオを明確にすることができます。 このメッセージは、アサーションの背後にある意図を説明するドキュメントとして機能し、他の開発者がコードを深く掘り下げなくてもアサーションの目的を理解するのに役立ちます。
Assert.Fail
を使うと、全体としてコードベースの明確さ、ドキュメント、保守性が向上し、常に失敗するアサーション呼び出しよりも優れた選択肢になります。
違反の修正方法
Assert.IsTrue
、 Assert.IsFalse
、 Assert.AreEqual
、 Assert.AreNotEqual
、 Assert.IsNull
または Assert.IsNotNull
の呼び出しによって常に失敗する条件が生成されていないことを確認します。
どのようなときに警告を抑制するか
この規則の警告を抑制することはお勧めしません。
警告を抑制する
単一の違反を抑制するだけの場合は、プリプロセッサ ディレクティブをソース ファイルに追加して無効にしてから、ルールを再度有効にします。
#pragma warning disable MSTEST0025
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0025
ファイル、フォルダー、またはプロジェクトのルールを無効にするには、その重大度を 構成ファイルに none
に設定します。
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0025.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
.NET