1

C# のレガシー コードを引き継いでいますが、このコードの単体テストが機能しません。

次のコードで説明しましょう。

[TestMethod]
public void SampleTest() {
    ...
    // Parallel call of this method via Threading
    TestUtil(args);
    ...
}

private void TestUtil(...) {
    ...
    Assert.IsTrue(Condition1);
    Assert.IsTrue(Condition2);
}

Visual Studio でSampleTestを実行すると、テストを失敗としてマークする代わりに (何らかの条件が失敗したため)、VS は QTAgent.exe で例外をスローします。

この場合、QTAgent.exe がテストに失敗する代わりにクラッシュする理由を知っていますか?

4

2 に答える 2

2

テストクラスのプライベートメソッドにアサートを入れてもまったく問題ないと思います。プライベート メソッドは、基本的に論理的にはメイン メソッドに属するコードと見なすことができますが、読みやすさやコードの再利用のために分割されています。アサートが複数のテスト間で同一である場合、私は通常、アサートをプライベート メソッドに入れます。

于 2013-06-30T03:02:07.880 に答える
0

私は答えを見つけました。Assert、TestMethod、またはスレッド化とは関係ありません。ライブラリが見つからないため、例外がスローされました。

したがって、可能であれば、この質問を削除したいと思います。

于 2013-06-30T09:33:35.927 に答える