Насмешливый взгляд с RhinoMocks - PullRequest
1 голос
/ 03 марта 2010

Мы используем MVP (Supervising Controller) для ASP.NET WebForms с 3.5 SP1.

Каков предпочтительный способ проверки значения свойства представления, которое имеет только операцию set с RhinoMocks?

Вот что мы имеем до сих пор:

var service = MockRepository.GenerateStub<IFooService>();
// stub some data for the method used in OnLoad in the presenter

var view = MockRepository.GenerateMock<IFooView>();
var presenter = new FooPresenter(view, service);

view.Raise(v => v.Load += null, this, EventArgs.Empty);

Assert.IsTrue(view.Bars.Count == 10); // there is no get on Bars

Если бы мы использовали Expect или другим способом, любой вход был бы хорош.

Спасибо

Обновление на основе ответа Дарина Димитрова.

var bars = new List<Bar>() { new Bar() { BarId = 1 } };

var fooService = MockRepository.GenerateStub<IFooService>();

// this is called in OnLoad in the Presenter
fooService.Stub(x => x.GetBars()).Return(bars);

var view = MockRepository.GenerateMock<IFooView>();
var presenter = new FooPresenter(view, fooService);

view.Raise(v => v.Load += null, this, EventArgs.Empty);
view.AssertWasCalled(x => x.Bars = bars); // this does not pass

Это не работает. Должен ли я проверить это таким образом или есть лучший способ?

1 Ответ

0 голосов
/ 03 марта 2010

Можно утверждать, что setter для свойства Bars вызвано с правильным аргументом. Предполагая, что свойство Bars является массивом строк:

// arrange
var view = MockRepository.GenerateMock<IFooView>();
var bars = new[] { "bars" };

// act
view.Bars = bars;

// assert
view.AssertWasCalled(
    x => { x.Bars = bars; }
);

Это также должно работать:

view.AssertWasCalled(
    x => { x.Bars = new[] { "abc" }; }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...