Rhino Mocks用ref参数存根事件

时间:2010-08-12 04:44:53

标签: c# events rhino-mocks

我正试图从我的模拟对象中调用一个事件。我这样做:

importObject.Raise(x => x.RequestImportLevel += null, false, false, true, importLevel);

需要通过引用传递的最后一个参数。所以,我得到了一个例外

  

参数#4是System.Int16但是   应该是System.Int16&

我该怎么做才能解决这个问题?

如果问题出在Rhino Mocks中 - 还有其他框架可以干净利落地支持这种开箱即用吗?

1 个答案:

答案 0 :(得分:0)

这个对象实现了一个接口,所以我刚创建了一个虚拟类,让它继承自IEventWithRefParameter并引入了一个像

这样的函数
    public virtual void RaiseRequestImportLevelEvent(bool hasYc, bool hasWc, bool hasDc, ref short chosenLevel)
    {
        if (RequestImportLevel != null)
        {
            RequestImportLevel(hasYc, hasWc, hasDc, ref chosenLevel);
        }
    }

现在我在我的测试中使用了这个虚拟类的实例,当我想要引发一个事件时,我只是调用这个函数。

不是一个干净的解决方案,但至少它可以解决问题。

相关问题