COM-события модульного тестирования?

У нас есть самодельный COM-компонент, написанный на C ++. Теперь мы хотим протестировать его функции и события в тестовом проекте C #. Функциональные тесты довольно просты. Однако события никогда не запускаются.

MyLib.MyClass m = new MyLib.MyClass();
Assert.IsTrue(m.doStuff()); // Works

// This does not work. OnMyEvent is never called!
m.MyEvent += new MyLib.IMyClassEvents_MyEventHandler(OnMyEvent);
m.triggerEvent();

Я искал это в Google и читал о похожих проблемах здесь, в StackOverflow. Я перепробовал все предложенные методы, но не могу заставить их работать!

Пока что я пытался запустить свой тест с активным диспетчером , но безуспешно. Я также пробовал вручную перекачивать сообщения в основном потоке, используя Dispatcher.PushFrame () . Ничего такого. Мои события никогда не срабатывают. Я создал простой проект WinForms и убедился, что мои события работают в обычном режиме. Следовательно, эта проблема относится только к модульным тестам.

В: Как мне сделать обычный модульный тест C #, который может успешно запускать активные обработчики событий?

У кого-нибудь должен быть рабочий образец! Пожалуйста помоги.

7
задан l33t 30 December 2011 в 02:07
поделиться