我想阻止在部分类的属性上调用真正的setter代码。
这是什么语法?
我当前的代码来存根 getter (我也想要删除setter):
var user = MockRepository.GeneratePartialMock<User>(ctor params...);
user.MyProperty = "blah";
这样的东西?
user.Stub(u => u.MyProperty).Do(null);
答案 0 :(得分:1)
这是一个3.5样本,可以满足您的需求(我认为您的语法是3.1或3.2)。
首先,我有一个属性setter调用的委托:
private delegate void NoAction(string value);
然后使用Expect.Call和“SetPropertyAndIgnoreArgument”以及“Do”:
var repository = new MockRepository();
var sample = repository.PartialMock<Sample>();
Expect.Call(sample.MyProperty).SetPropertyAndIgnoreArgument().Do(new NoAction(DoNothing));
sample.Replay();
sample.DoSomething();
repository.VerifyAll();