Дважды заглушки собственности с насмешками носорога - PullRequest
7 голосов
/ 24 августа 2011

Для некоторых объектов я хочу создать заглушки по умолчанию, чтобы общие свойства содержали значения.Но в некоторых случаях я хочу изменить свое поведение по умолчанию.У меня вопрос, могу ли я как-то перезаписать уже заглушенное значение?

//First I create the default stub with a default value
var foo = MockRepository.GenerateStub<IFoo>();
foo.Stub(x => x.TheValue).Return(1);

//Somewhere else in the code I override the stubbed value
foo.Stub(x => x.TheValue).Return(2);

Assert.AreEqual(2, foo.TheValue); //Fails, since TheValue is 1

1 Ответ

0 голосов
/ 24 августа 2011

Использование Expect вместо Stub и GenerateMock вместо GenerateStub решит это:

//First I create the default stub with a default value
var foo = MockRepository.GenerateMock<IFoo>();
foo.Expect(x => x.TheValue).Return(1);

//Somewhere else in the code I override the stubbed value
foo.Expect(x => x.TheValue).Return(2);

Assert.AreEqual(1, foo.TheValue);
Assert.AreEqual(2, foo.TheValue);
...