Я новичок в Rhino Mocks и вообще использую фреймворки для модульного тестирования. Я написал следующий тест, в котором я установил ожидание для фиктивного объекта IDataProvider для возврата коллекции объектов. В поставляемой коллекции есть один объект.
Когда я запускаю тест, вызов IDataProvider возвращает пустой список, когда он должен вернуть список с одним объектом в нем.
Есть идеи, что не так?
Вот мой тест: (Пожалуйста, извините за любые плохие практики здесь ... не стесняйтесь упоминать любые. Я пытаюсь учиться! Спасибо)
[TestMethod()]
public void FetchDataSeries_NeedsUpdate_SuccessfulDataSeriesRetrievedFromDataProvider() {
List<IDataSeries> dataSeries = new List<IDataSeries>();
dataSeries.Add(new DataSeries("test"));
DrillDownLevel level = DrillDownLevel.YEAR;
int? year = 2008;
var dataProvider = _MockRepository.CreateMock<IDataProvider>();
dataProvider.Expect(dp => dp.GetDataSeries(String.Empty, level, year, null ,null, null)).Return(dataSeries);
_DataSourceContext.DataProvider = dataProvider;
CollectionAssert.AreEqual(dataSeries, _DataSourceContext.FetchDataSeries(level, year, null, null, null));
dataProvider.VerifyAllExpectations();
}
Соответствующая часть тестируемого метода: (Вызов DataProvider.GetDataSeries возвращает пустой список ... это должно вернуть список с заглушками.)
public override List<IDataSeries> FetchDataSeries(DrillDownLevel? drillDownLevel, int? year, int? month, DateTime? week, int? day) {
List<IDataSeries> dataSeries = new List<IDataSeries>();
// Cache data for maximum cache period
// if data has been cached for longer than the maxium cache period OR the updateInterval has elapsed UNLESS LastUpdateAttempt was less than minimum update interval
if (NeedsUpdate(LastUpdate, LastUpdateAttempt)) {
// Attempt to get new data
LoggingService.InfoFormat("DataSourceContext: {0}: Attempting to get new data:", Name);
dataSeries = DataProvider.GetDataSeries(DataQuery, drillDownLevel, year, month, week, day);
}
return dataSeries;
}