mezastel 4 окт 2009 в 08:45Асинхронное программирование — тестирование событийВремя на прочтение6 минКоличество просмотров3.4K.NET * Всего голосов 26: ↑16 и ↓10+6Добавить в закладки25Комментарии7
Azzu 4 окт 2009 в 20:56Круто, только не thread safe. Так еще круче: public class EventTester: IDisposable { private readonly Action _postHocTests; private readonly ManualResetEvent _waitHandle; private bool _called; private IAsyncResult _waitToken; public EventTester(Action postHocTests) { _waitHandle = new ManualResetEvent(false); _postHocTests = postHocTests; } #region IDisposable Members public void Dispose() { lock (_waitHandle) { Assert.IsTrue(_called, «The event was never handled»); _postHocTests.EndInvoke(_waitToken); } } #endregion public void Handler(TSender sender, TArgument args) { lock (_waitHandle) { _waitHandle.Set(); _waitToken = _postHocTests.BeginInvoke(sender, args, null, null); } } public void Wait(int mullisecondsTimeout) { _called = _waitHandle.WaitOne(mullisecondsTimeout); } }
Azzu 5 окт 2009 в 20:01Показать предыдущий комментарийНу блин, расслабился понимаешь. Понаделали везде авто экранирования ;)
ofigenn 5 окт 2009 в 20:03А зачем тестировать MicrosoftSubscription.Sync.WebDataProvider? Не уверены, что он работает?
SychevIgor 6 окт 2009 в 05:01Показать предыдущий комментарийпо моему не важно, что, главное как тут тестируется. можно ведь другой код так тестить…
Асинхронное программирование — тестирование событий