Rhino mocks 使用rhinomock输出参数
我显然感到困惑——这是我用我们正在考虑的其他几个框架(NMock、Moq、fakeetisy)完成的任务。我有一个函数调用我想存根。函数调用有一个out参数(对象) 函数调用在代码中多次调用的用例中。调用代码传入参数,包括out参数的NULL对象。我想根据提供的其他参数设置一个预期的OUT参数 如何指定按预期方式填充的对象的预期出站参数NULL、和?到星期天为止,我已经尝试了六种方法,但到目前为止,我的OUTBOUND out参数只能返回NULL。来源: Ref和out参数是特殊的,因为您还必须 我很高兴。关键字ref和out是mandantory,您需要 字段作为参数。Arg不会让您失望:Rhino mocks 使用rhinomock输出参数,rhino-mocks,Rhino Mocks,我显然感到困惑——这是我用我们正在考虑的其他几个框架(NMock、Moq、fakeetisy)完成的任务。我有一个函数调用我想存根。函数调用有一个out参数(对象) 函数调用在代码中多次调用的用例中。调用代码传入参数,包括out参数的NULL对象。我想根据提供的其他参数设置一个预期的OUT参数 如何指定按预期方式填充的对象的预期出站参数NULL、和?到星期天为止,我已经尝试了六种方法,但到目前为止,我的OUTBOUND out参数只能返回NULL。来源: Ref和out参数是特殊的,因为您还必须
User user;
if (stubUserRepository.TryGetValue("Ayende", out user))
{
//...
}
stubUserRepository.Stub(x =>
x.TryGetValue(
Arg.Is("Ayende"),
out Arg<User>.Out(new User()).Dummy))
.Return(true);
用户;
if(stubUserRepository.TryGetValue(“Ayende”,out user))
{
//...
}
stubUserRepository.Stub(x=>
x、 TryGetValue(
参数为(“Ayende”),
out Arg.out(新用户()).Dummy)
.返回(真);
out是编译器的命令。Arg.Out(new User())是
对我们来说很重要的一部分,它指定out参数应该
返回新用户()。Dummy只是指定用户类型的字段,
让编译器高兴
如果使用存储库生成模拟/存根
checkUser = MockRepository.GenerateMock<ICheckUser>
checkUser=MockRepository.GenerateMock
您可以使用out参数设置期望值
checkUser
.Expect(c => c.TryGetValue(Arg.Is("Ayende"), out Arg<User>.Out(new User()).Dummy)
.Return(true)
checkUser
.Expect(c=>c.TryGetValue(Arg.Is(“Ayende”),out Arg.out(new User()).Dummy)
.Return(true)
此解决方案更干净,适用于Rhino Mocks 3.6:
myStub.Stub(x => x.TryGet("Key", out myValue))
.OutRef("value for the out param")
.Return(true);
该链接现在得到一个404未找到。这是唯一对我有效的方法。它不会识别
out Arg.out
语法。+1I还将添加到C#7.0中,您可以使用下划线作为out
变量的放弃,进一步将其简化为x.TryGet(“Key”,out)
(这也使您无需在其他地方声明myValue
)。