8

错误:

您正在尝试对定义为使用 PropertyBehavior 的属性设置期望。而不是编写这样的代码:mockObject.Stub(x => x.SomeProperty).Return(42); 您可以直接使用该属性来达到相同的结果: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;}
    }
}

我究竟做错了什么?

4

3 回答 3

8

我认为使用 Mock 而不是存根可以解决问题,但我可能会错过更好的方法。

        var x = MockRepository.GenerateMock<MyClass>();
        x.BackToRecord(BackToRecordOptions.PropertyBehavior);
        SetupResult.For(x.Items).Return(new List<Item>());
        x.Replay();
于 2011-04-27T17:21:59.467 回答
2

比以下更清洁的方法:

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

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

于 2011-04-28T11:00:56.827 回答
1

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

于 2012-07-03T16:36:41.953 回答