Я знаю, что могу сделать это:
IDateTimeFactory dtf = MockRepository.GenerateStub<IDateTimeFactory>();
dtf.Now = new DateTime();
DoStuff(dtf); // dtf.Now can be called arbitrary number of times, will always return the same value
dtf.Now = new DateTime()+new TimeSpan(0,1,0); // 1 minute later
DoStuff(dtf); //ditto from above
Что, если вместо IDateTimeFactory.Now быть свойством, это метод IDateTimeFactory.GetNow () , как мне сделать то же самое?
Согласно предложению Иуды ниже, я переписал свой вспомогательный метод SetDateTime следующим образом:
private void SetDateTime(DateTime dt) {
Expect.Call(_now_factory.GetNow()).Repeat.Any();
LastCall.Do((Func<DateTime>)delegate() { return dt; });
}
, но все равно выдает «Результат для ICurrentDateTimeFactory.GetNow (); уже настроен». ошибки.
Плюс, он все еще не будет работать с заглушкой ....