我在测试中使用ManualResetEvent类。

基本上,我想在调用特定函数时调用Set()方法。
看起来像:

var mre = new ManualResetEvent(false);
mockObj.Setup(dmc => dmc.Foo(param1, param2, param3)).Callback(mre.Set()); //Error here.


但是,我收到一条错误消息:


  无法从布尔转换为“ System.Action”


当我尝试设置mre时。

我在这里做错什么了吗?

最佳答案

错误消息说明了一切


  无法从布尔转换为“ System.Action”


Callback需要一个lambda表达式/操作

//...
var mre = new ManualResetEvent(false);
mockObj
    .Setup(dmc => dmc.Foo(param1, param2, param3))
    .Callback(() => mre.Set()); //<-- Callback requires an Action
//...


参考Moq Quickstart可以更好地了解如何使用模拟框架。

关于c# - 在回调模拟设置上设置ManualResetEvent时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48632898/

10-09 18:26