Я пытаюсь проверить, правильно ли загружается метод загрузки матрицы пользовательского интерфейса. Тест не пройден, если я не скажу фиктивной структуре игнорировать переданный аргумент, выдав мне следующее сообщение:
Rhino.Mocks.Exceptions.ExpectationViolationException:
ITimeSheetMatrixWidget.Load
(Smack.ConstructionAdmin.Domain.TransferObjects.TimeSheetDtoAssembler
+ D__1); Ожидаемый # 1, фактический # 0.
Что интересно, так это то, что сообщение каким-то образом принимает вызов, сделанный другому объекту, который собирает DTO из модели домена - я не понимаю!
Вот интерфейс / метод Сут:
public interface ITimeSheetMatrixWidget : IMatrixWidget {
.....
void Load(IEnumerable<DynamicDisplayDto>activities);
.....
}
А вот и тест:
[Test]
public void SettingTheWidget_TriggersLoad_NonProjectActivities() {
var f = _getFacade();
// create test activities
TestDataFactory.SetupTestActivities(f);
Assert.That(f.NonProjectDtos.Count(), Is.GreaterThan(0));
// create the presenter
var filterService = MockRepository.GenerateStub<IProjectFilterService>();
var view = MockRepository.GenerateStub<ITimeSheetView>();
var timeSheetPresenter = new TimeSheetPresenter(f, filterService, view);
// inject the mocked widget & trigger the Load
var widget = MockRepository.GenerateMock<ITimeSheetMatrixWidget>();
timeSheetPresenter.ActivityMatrix = widget;
widget.AssertWasCalled(x => x.Load(f.NonProjectDtos),
mo =>mo.IgnoreArguments()); <-- ok, but not useful
//widget.AssertWasCalled(x => x.Load(f.NonProjectDtos)); <-- generates the Exception
}
Может кто-нибудь объяснить сообщение об ошибке?
Кроме того, сегодня утром я опубликовал это на форуме Rhino Mocks, но трафик там выглядит очень низким.
Спасибо за вашу помощь!
Berryl