9

私のチームの一部のプログラマーは、メソッドを呼び出して結果を取得する単体テストを作成することがありますが、Assert実際に何が起こっているかを確認するために適切なメソッドを呼び出すのを忘れています。

検証が行われていない場合に MSTest を強制的にテストに失敗させるためにできる構成があるかどうか疑問に思っていました。DUnit でこのようなものを見たのを覚えていますが、Visual Studio では見つかりませんでした。

4

2 に答える 2

3

Roy Osheroveと共同の Test-Lint をチェックしてください。テストコードの静的コード分析です。

公開アルファ版/ベータ版のときに一度試してみましたが、かなり行儀が良かったです。ただし、この特定のニーズは試していません。MSTest やほとんどの単体テスト フレームワークが、すぐに使用できるこの問題を防ぐとは思いません。

また、アクィナスには有効なコメントがあります..教育は検査とスティックよりもうまくいくかもしれません。不正なアサートをキャッチするカスタム ルールを作成できる場合もあります。ツールを確認してください。

ツールのホームページから、

どのような問題が検出されますか?
現在、Test Lint は一連の一般的な問題を検出し
ます: * テストでアサートが欠落している

于 2012-08-28T04:53:31.310 に答える
2

そのような機能は聞いたことがありません。Asserts を使用しない単体テストは、エラーがスローされないことをテストするだけであり、その場合、通常は毎回合格します。

あなたのプログラマーが実際にアサートなしでテストを書いていることに私はかなり驚いています。これは非常に専門的ではないようです。テスト駆動開発に関するいくつかのオンライン コースを読むように指示することをお勧めします。このコースでは通常、失敗するテストを作成し、それを成功させるためにプログラミングの変更を行います (この場合、Assert.IsTrue(true) は開始すらしません)。わかる。

テンプレートも提供します。

[Test]
public void TestCase
{
    //Setup
    //Run Test
    //Process Results
    //Assert
}

このスクリーンキャストを購入することを強くお勧めします: http://tekpub.com/productions/ft_tdd_wilson

単体テストの書き方と、TDD に正しく従う方法についての良いアイデアを提供します。

于 2012-08-27T21:23:47.340 に答える