c#-4.0 - C# 动态对象的模拟/ stub 框架

标签 c#-4.0 dynamic mocking

关闭。这个问题不符合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/

相关文章:

asp.net - 在左侧 css 中获取显示图像的 css 问题。网站

wpf - ListCollectionView 的 live shaping bug

python - 模拟类 : catch 22

在 C 中更改二维动态数组的大小

css - 使用 vue/nuxt 将样式属性附加到所有( anchor )元素

python - 将 Boto3(版本 1.8 或更高版本)与 Moto 一起使用时如何模拟 AWS 调用

node.js - 如何在 sinon 中获取 stub 的参数并将其中一个参数 + 其他数据用于特定 stub 调用的返回值

c#-4.0 - 无法获取 Integration 类 ninject 的默认构造函数

c# - 在 td 中的项目符号和文本之间添加空格

c# - 如何将某些对象转换为 T 的父类的泛型类?