public void CanNotifyAboutProgress() { AutoResetEvent workerExecuted = new AutoResetEvent(false); DoWorkEventHandler worker = delegate(object sender, DoWorkEventArgs e) { AsyncWorker genericWorker = (AsyncWorker)sender; genericWorker.WorkerReportsProgress = true; for (int i = 0; i <= 100; i += 10) { genericWorker.ReportProgress(i, null); } }; int count = 0; ProgressChangedEventHandler progress = (sender, e) => { count++; if (count == 10) { workerExecuted.Set(); } }; AsyncWorker testee = new AsyncWorker(worker, progress, null); testee.RunWorkerAsync(); workerExecuted.WaitOne(TimeOut).Should().BeTrue(); }