关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
2年前关闭。
Improve this question
我正在寻找一个可用于测试使用动态对象的 C# 代码的框架。我希望能够指定方法 stub 并设置模拟期望,就像在接口(interface)上使用 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();
其中被测方法将参数声明为动态对象。
有什么建议么?
最佳答案
好吧,您总是可以尝试 mock 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);
附言请原谅任何 rhino mocks 语法问题,我之前使用 MOQ 完成了此操作,我刚刚用 Rhino Mocks 快速引用指南写出了相同的概念。
关于c#-4.0 - C# 动态对象的模拟/ stub 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7445794/