Rhino 模拟存根中私人设置器的问题

发布于 2024-11-03 23:16:47 字数 516 浏览 0 评论 0原文

错误:

您正在尝试设定一个期望 在定义为使用的属性上 财产行为。而不是写作 代码如下:mockObject.Stub(x => x.SomeProperty).Return(42);可以直接使用该属性来实现 相同的结果: 模拟对象.SomeProperty = 42;

var x = MockRepository.GenerateStub<MyClass>();
x.Stub(s => s.Items).Return(new List<Item>());

public class MyClass
{
    public virtual IEnumerable<Item> Items
    {
        get {return _items;}
        private set {_items = value;}
    }
}

我做错了什么?

Error:

You are trying to set an expectation
on a property that was defined to use
PropertyBehavior. Instead of writing
code such as this: mockObject.Stub(x
=> x.SomeProperty).Return(42); You can use the property directly to achieve
the same result:
mockObject.SomeProperty = 42;

var x = MockRepository.GenerateStub<MyClass>();
x.Stub(s => s.Items).Return(new List<Item>());

public class MyClass
{
    public virtual IEnumerable<Item> Items
    {
        get {return _items;}
        private set {_items = value;}
    }
}

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

暗恋未遂 2024-11-10 23:16:47

我认为使用模拟而不是存根可以解决这个问题,但我可能缺少更好的方法。

        var x = MockRepository.GenerateMock<MyClass>();
        x.BackToRecord(BackToRecordOptions.PropertyBehavior);
        SetupResult.For(x.Items).Return(new List<Item>());
        x.Replay();

I think using a Mock rather than a stub gets around the problem, but there may be a better way I'm missing.

        var x = MockRepository.GenerateMock<MyClass>();
        x.BackToRecord(BackToRecordOptions.PropertyBehavior);
        SetupResult.For(x.Items).Return(new List<Item>());
        x.Replay();
温柔一刀 2024-11-10 23:16:47

比这更干净的方法:

var x = MockRepository.GenerateMock<MyClass>();
x.Stub(s => s.Items).Return(new List<Item>());

我只是不明白为什么GenerateStub不起作用。

A cleaner way than would be:

var x = MockRepository.GenerateMock<MyClass>();
x.Stub(s => s.Items).Return(new List<Item>());

I just don't get why GenerateStub doesn't work.

赠我空喜 2024-11-10 23:16:47

我收到了同样的消息。我的问题是我试图在具体类上存根非虚拟属性。

I received this same message. My issue was that I was trying to stub a non-virtual property on a concrete class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文