例如类似于以下使用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快速参考指南写出了相同的概念.
总结以上是内存溢出为你收集整理的c#-4.0 – C#动态对象的模拟/存根框架全部内容,希望文章能够帮你解决c#-4.0 – C#动态对象的模拟/存根框架所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)