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

本文关键字:事件 分离 监听器 单元测试 | 更新日期: 2023-09-27 18:07:56

我被困在一个单元测试上,测试事件是由事件侦听器附加到类并分离的。我不知道如何做到这一点,我在许多论坛上看过。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)
}

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

要断言事件处理程序运行,请让您附加的处理程序做一些您可以断言已完成的事情,例如将布尔handlerExecuted变量从false翻转到true

要断言它是分离的,做同样的事情,但反过来断言。(断言handlerExecutedfalse而不是true)