我想測試加載UI矩陣的方法正在加載正確。如何解釋此(犀牛)模擬單元測試失敗msg
Rhino.Mocks.Exceptions.ExpectationViolationException:除非我告訴模擬框架忽略參數傳遞給我下面的消息,則測試失敗 ITimeSheetMatrixWidget.Load (Smack.ConstructionAdmin.Domain.TransferObjects.TimeSheetDtoAssembler + d__1);預期#1,實際#0。
有趣的是,消息是以某種方式接收對另一個對象的調用,該對象從域模型中組裝DTOs - 我不明白!
下面是接口/方法蘇特是:
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
它的參數是神祕的對我(TransferObjects.TimeSheetDtoAssembler + d__1),而不是由犀牛預期的方法調用的一部分方法。 + d_1是什麼意思? – Berryl 2009-06-05 04:23:41