单元测试事件监听器将事件附加/分离到类

时间:2014-06-10 20:53:01

标签: c# unit-testing events event-listener

我被困在一个单元测试中,测试一个事件由一个事件监听器附加到一个类并分离。我无法弄清楚如何做到这一点,我已经看过很多论坛。 EmailEventListener将构造函数中的事件附加到fakeClass并在Detach()方法中分离。它还包含触发事件时调用的方法。我正在使用FakeItEasy来创建假类。有什么想法吗?谢谢!

[TestMethod]
public void EmailEventListener_AttachedSubscription_ToClass_Successfully()
{
    EmailEventListener<ConcreteClass> realListener = new EmailEventListener<ConcreteClass>(fakeClass, A.Dummy<IEmailSender>());

    // Assert that fakeClass has the event

    realListener.Detach();

    // Assert that fakeClass does not have the event (probably in another test, but just wanted to show it here)

}

1 个答案:

答案 0 :(得分:1)

要声明事件处理程序运行,请让您附加的处理程序执行可以断言的操作,例如将布尔handlerExecuted变量从false翻转到true。< / p>

断言它是分离的,做同样的事情,但反转断言。 (断言handlerExecutedfalse而非true。)