我被困在一个单元测试中,测试一个事件由一个事件监听器附加到一个类并分离。我无法弄清楚如何做到这一点,我已经看过很多论坛。 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)
}
答案 0 :(得分:1)
要声明事件处理程序运行,请让您附加的处理程序执行可以断言的操作,例如将布尔handlerExecuted
变量从false
翻转到true
。< / p>
断言它是分离的,做同样的事情,但反转断言。 (断言handlerExecuted
为false
而非true
。)