WinRT C#で構築されたWindowsストアアプリケーションでの単体テストにxUnitを使用しています。テスト対象のコードには、待機中の非同期メソッドの呼び出しがあります。問題は、失敗する場合と成功する場合があることです。私の推測では、待機中のコードの一部の継続は、キャプチャされたものとは異なる同期コンテキストで実行され、その後、Task
待機されていないコールチェーンのどこかにあります。しかし、そのような場所は見つかりません。どうすればバグの理由を見つけることができますか?
1 に答える
2
単体テストがasync Task
の代わりであることを確認してくださいasync void
。async void
単体テストはxUnit ではまだサポートされていません。
async void
単体テストで例外が発生した場合、誤って成功する可能性がある競合状態があります(詳細については、私のブログ投稿へのリンク。MSTest について説明していますが、xUnit にも同じ状況が存在します)。
于 2012-11-04T14:46:32.310 に答える