如何使用具有ref bool参数的Rhino Mocks升级事件

时间:2010-10-21 14:06:46

标签: c# .net unit-testing rhino-mocks

我正在尝试编写一个涵盖特定类中的错误处理的测试。此类正在侦听具有以下签名的错误事件:

OnError(int ErrorNumber, string ErrorText, ref bool retry)

问题在于最后的ref bool变量。我正在使用Rhino Mocks创建一个用于测试的模拟界面,当我尝试使用以下内容引发错误时:

bool retry = false;
AdapterMock.Raise(x => x.Error += null, 0, "0", ref retry);

它甚至不会编译,告诉我它无法从ref bool转换为Object。

如果我将签名更改为:

bool retry = false;
AdapterMock.Raise(x => x.Error += null, 0, "0", retry);

我编译得很好,但测试失败了System.InvalidOperationException:参数#3是System.Boolean但应该是System.Boolean&

我正在把头发拉出来,如何在我的模拟中正确地举起这个事件?

1 个答案:

答案 0 :(得分:0)

尝试:

AdapterMock.Raise( x=> x.Error += null, Arg<int>.Is.Equal(0), Arg<string>.Is.Equal("0"), Arg.Ref(ref Is.Equal(retry)));