gpt4 book ai didi

c# - 您如何访问委托(delegate)被调用的次数?

转载 作者:行者123 更新时间:2023-11-30 20:48:50 25 4
gpt4 key购买 nike

我目前正在为一项功能编写测试。我需要计算一个事件处理程序被调用了多少次。在此示例中,我想确保永远不会调用委托(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com