- 517 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 20:09:32.60 ID:G/L2rMHg.net]
- 簡単に単体テストできるのか知りたいです
public static async Task DoHeavyAsync(string path, IProgress<long> progress, CancellationToken token) という非同期メソッドの単体テストで、同期版の DoHeavy() と同様のテスト以外に、 (1) progress が動作していることの確認 (2) token が動作していることの確認 が必要だと思います (1) が簡単ではない var progress = new Progress<long>(n => { Assert.Fail(); }); などやっても、テストが成功してしまう(レポートがメソッド終了後に届くため) まじめにやるとしたら別スレッドを作る必要がありそう? (2) は、巨大ファイルを使って new CancellationTokenSource(20) などでキャンセルされることを確認という 汚い手法でテストしています(処理速度があがった場合にテストが失敗する可能性があるのが汚い点) (1)と(2)、それぞれどのようにテストするべきでしょうか? 特に(1) NUnit を使ってますが、他のフレームワークでもいいです
|

|