だから私はいくつかのコードを持っています
Task.Factory.StartNew(() => this.listener.Start()).ContinueWith(
(task) =>
{
if (task.IsCompleted)
{
this.status = WorkerStatus.Started;
this.RaiseStatusChanged();
this.LogInformationMessage("Worker Started.");
}
});
私がテストしているとき、私はすべての依存オブジェクトをモックしています (namley this.listener.Start())。問題は、ContinueWith を呼び出す前にテストの実行が終了することです。デバッグすると、コードをステップ実行するための余分な遅延のために正常に呼び出されます。
では、別のアセンブリのテスト コードから、テストがアサートにヒットする前にコードが実行されるようにするにはどうすればよいでしょうか。
Thread.Sleep を使用することもできますが、これは非常にハックな方法のようです。
Thread.Join のタスク バージョンを探していると思います。