我正在尝试编写一个涵盖特定类中的错误处理的测试。此类正在侦听具有以下签名的错误事件:
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&
我正在把头发拉出来,如何在我的模拟中正确地举起这个事件?
答案 0 :(得分:0)
尝试:
AdapterMock.Raise( x=> x.Error += null, Arg<int>.Is.Equal(0), Arg<string>.Is.Equal("0"), Arg.Ref(ref Is.Equal(retry)));