我目前正在为一项功能编写测试。我需要计算一个事件处理程序被调用了多少次。在此示例中,我想确保永远不会调用委托(delegate)“failureHandler”。
通过执行 Assert.Fail()(如果它被调用),我已经从测试的角度实现了我想要的。不过,我想要做的是计算在测试的其他部分调用委托(delegate)的次数。
我相信我在某个地方读到过您可以通过属性访问此信息,但我不记得我是在哪里读到的!
Action failureHandler =
completed => Assert.Fail("Not all tasks have been completed");
_testObj.TaskCompletedForItems += failureHandler;
最佳答案
您可以使用 MOQ ,并验证该操作已被调用了多少次:
Mock<Action> mockAction = new Mock<Action>();
Action action = mockAction.Object;
//call action
action();
//verify that it was never called
mockAction.Verify(act => act(), Times.Never());
//or verify that it has been called exactly once
mockAction.Verify(act => act(), Times.Once());
关于c# - 您如何访问委托(delegate)被调用的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180075/