Вы не хотели бы, чтобы это использовалось для каждый вызов к GetBytes, иначе у Вас не будет способа (говорят) что запись файла строки за один раз.
Путем представления его с GetPreamble, вызывающие стороны могут вставить преамбулу только в соответствующей точке (т.е. в начале их данных). Я соглашаюсь, что документация могла быть намного более четкой все же.
Никогда не использовал PropertyBehavior
раньше, но это тот синтаксис, который вы ищете?
form.Stub(x=>x.OKButtonEnabled).PropertyBehavior()
Rhino Mocks теперь полностью работает через методы расширения. Единственный статический вызов, который я каждый раз делаю, - это MockRepository.GenerateStub
.
Я думаю, вам нужно выполнить MockRepository.ReplyAll () после того, как вы настроите все ожидания и прежде, чем вы начнете использовать этот макет. Итак, я предполагаю, что в вашем случае вам нужно переместить строку Expect.Call перед mediator = new AddAddressMediator (form); и сразу после этого вставить ответ:
[TestInitialize()]
public void MyTestInitialize()
{
form = MockRepository.GenerateMock<IAddAddressForm>();
// Make the properties work like a normal property
Expect.Call(form.OKButtonEnabled).PropertyBehavior();
//I tried this too. I still get the exception
//SetupResult.For(form.OKButtonEnabled).PropertyBehavior();
MockRepository.ReplyAll();
mediator = new AddAddressMediator(form);
}
Вы упомянули об использовании заглушки вместо имитации, но прежде чем вы измените ее, я Как ни странно, я получаю исключение Invalid Call, когда использую GenerateStub, но не когда использую GenerateMock.
View = MockRepository.GenerateStub<IAddressView>();
View.Stub(v => v.Message).PropertyBehavior();
Это вызывает исключение Invalid call и да, IAddressView.