我正在寻找一个框架,我可以用它来测试使用动态对象的C#代码.我希望能够指定方法存根并设置模拟期望,就像在接口上使用Rhino Mocks之类的东西一样
例如类似于以下使用Rhino Mocks风格的东西
var fakeService = MockRepository.GenerateStub<dynamic>(); fakeService.Stub(s => s.someMethod(Arg.Is(someValue))).Returns(someResult); sut.MethodUnderTest(fakeService);
要么
var fakeService = MockRepository.GenerateMock<dynamic>(); fakeService.Expect(s => s.DoSomething(Arg.Is(someValue))); sut.MethodUnderTest(fakeService); fakeService.VerifyAllExpectations();
其中被测方法将参数声明为动态对象.
有什么建议?
解决方法
那么你总是可以尝试模拟DynamicObject.它看起来会有所不同,但它可以随心所欲地模拟动态对象.
var fakeService = MockRepository.GenerateStub<DynamicObject>(); object outResult; fakeService.Stub(s => s.TryInvokeMember( Property.Value("Name","SomeMethod"),List.Equal(new{someValue}),out outResult)) .OutRef(someResult) .Returns(true); sut.MethodUnderTest(fakeService);
附:请删除任何犀牛模拟语法问题,我之前使用MOQ完成了这个,我刚刚用Rhino Mocks快速参考指南写出了相同的概念.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。