我有一个数据访问对象 TransactionDao。当您调用 TransactionDao.Save(transaction) 时,我希望它设置一个 transaction.IsSaved=true 标志(这是一种简化,我正在尝试做的实际事情并不是那么平庸)。因此,当使用 RhinoMocks 模拟我的 TransactionDao 时,我如何指示它应该转换其输入?
理想情况下,我想写这样的东西:
Expect.Call(delegate {dao.Save(transaction);}).Override(x => x.IsSaved=true);
有谁知道如何做到这一点?
尽管我从下面指定的答案中得到了提示,但实际类型签名已关闭,但您必须执行以下操作:由于 Mark Ingram 发布的内容,尽管没有人明确表示,但似乎最好的答案是做这个:
public delegate void FakeSave(Transaction t);
...
Expect.Call(delegate {dao.Save(t); }).Do( new FakeSave(delegate(Transaction t2) { t.IsSaved = true; }));