首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Moq +单元测试 - 如何将Action传递给我的类来测试是否调用了Action?

在使用Moq进行单元测试时,如果需要测试一个类是否调用了Action,可以通过以下步骤实现:

  1. 首先,在测试类中创建一个Mock对象,模拟要测试的类。
代码语言:csharp
复制
var mock = new Mock<YourClass>();
  1. 然后,使用Setup方法设置一个Action,用于在调用该方法时执行。
代码语言:csharp
复制
mock.Setup(x => x.YourMethod(It.IsAny<Action>()))
    .Callback((Action action) => action());
  1. 在测试方法中,使用Verify方法验证Action是否被调用。
代码语言:csharp
复制
mock.Verify(x => x.YourMethod(It.IsAny<Action>()), Times.Once);

完整的示例代码如下:

代码语言:csharp
复制
[Test]
public void TestActionCalled()
{
    var mock = new Mock<YourClass>();
    mock.Setup(x => x.YourMethod(It.IsAny<Action>()))
        .Callback((Action action) => action());

    // 调用要测试的方法
    mock.Object.YourMethod(() => { /* 要执行的Action */ });

    // 验证Action是否被调用
    mock.Verify(x => x.YourMethod(It.IsAny<Action>()), Times.Once);
}

这样,就可以通过Moq和单元测试来验证一个类是否调用了Action。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券