c# - 最小起订量 'TestMethod(Action<int> callback)' 并能够 'call' 回调

标签 c# testing moq

哎呀,
我想模拟一个我知道我的服务会调用的回调。例如:

public interface ITestMe { void TestMethod(Action<int> callback); }

在应用程序中,当调用“TestMethod”时,我会在它运行后将回调方法传递给 hit,它会根据参数做一些事情。通常,在这种情况下,它是这样使用的:

...
testMe.TestMethod(
    (ret) => 
        {
        if(ret < 0)
            AddToErrorCollection(ret);
        else
            AddToSuccessCollection(ret);
        }
    );

我想在最小起订量中做的是调用具有一系列值的匿名方法,例如:

myMock.Setup(m => m.TestMethod(It.IsAny<Action<int>>())).... //Call that action!!??

有什么办法吗?
这甚至是正确的方法吗?

最佳答案

试试这个:

myMock.Setup(m => m.TestMethod(It.IsAny<Action<int>>())).Callback<Action<int>>((action) => action(4));

虽然这似乎是一种相当复杂的方法来测试您的回调方法。为什么不直接测试呢?

关于c# - 最小起订量 'TestMethod(Action<int> callback)' 并能够 'call' 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4023042/

相关文章:

c# - 如何强制所有实现在其构造函数中调用特定方法

c# - Ninject 和 ASP.NET Web API

c# - 为每个方法调用设置回调使用最小起订量

unit-testing - 根据 AAA 正确使用 Moq 回调

c# - gridview 中单个单元格的单击事件

c# - 从 TPL 任务向 WPF View 报告进度的适当方法是什么?

python - 在 Python 的单元测试中使用 doctest "result parser"?

javascript - 如何在 postman 测试中将字符串与日期进行比较?

android - 在单独的模块中进行 Espresso 测试

unit-testing - 最小起订量单元测试 - 断言与验证