23

無限ループを生成するコードがあります。ここで、約 200 ミリ秒後に失敗するテストを作成する必要があります。200 ミリ秒は、コードが無限ループにあることを示します。

例えば:

public void CodeUnderTest()
{
   while(true)
   {

   }
} 
4

2 に答える 2

19

MSTest を使用する場合、属性を使用できます

[TestMethod]
[Timeout(200)]

テストの実行を強制的に停止する方法を参照してください

テストの実行またはテスト実行が準拠する時間制限を設定できます。たとえば、テスト ラボで作業していて、特定の時刻までにテストの実行を完了する必要がある場合などに、これを行う必要があります。

時間制限を使用する別のシナリオは、応答しないコードのシナリオです。

于 2012-08-27T16:12:34.160 に答える
18

どうですか:

Task.Create(CodeUnderTest).Wait(TimeSpan.FromSeconds(1));

また:

Task.Factory.StartNew(CodeUndertest).Wait(TimeSpan.FromSeconds(1));

また:

Task.Factory.StartNew(() => CodeUndertest(arg1,arg2,arg3...)).Wait(TimeSpan.FromSeconds(1));
于 2012-08-27T16:08:57.323 に答える