Rhino Mock OfType <> - PullRequest
       4

Rhino Mock OfType <>

1 голос
/ 26 октября 2010

Я пытаюсь проверить это утверждение

IStudentAssessmentUnitStatus res = student.UnitStatusList.OfType<IStudentAssessmentUnitStatus>().
                                                                                FirstOrDefault(s => s.ID == unit.ID);

Внутри списка может быть несколько типов, следовательно, OfType. Однако при тестировании написано «Ссылка на объект не установлена ​​на экземпляр»

     var _mockStudentFormUnit = _mockery.DynamicMock<IStudentAssessmentUnitStatus>();
     var _mockStudentAssessmentUnit = _mockery.DynamicMock<IStudentFormUnitStatus>();

     var studentunitList = new List<IStudentUnitStatus>() { _mockStudentFormUnit, _mockStudentAssessmentUnit };

     var mockEnum2 = _mockery.DynamicMock<IEnumerable<IStudentUnitStatus>>();

     Expect.Call(_mockStudent2.UnitStatusList).Return(mockEnum2).Repeat.Any();
     Expect.Call(mockEnum2.GetEnumerator()).Return(null).WhenCalled(s => s.ReturnValue = studentunitList.GetEnumerator()).Repeat.Any();

Могут ли эксперты по носорогам увидеть, что я сделал неправильно? Вышеприведенное прекрасно работает для перечислений, а технически OfType должен просто выполнять foreach и выполнять операцию "is"

Спасибо

1 Ответ

1 голос
/ 26 октября 2010

Попробуйте заменить последнюю строку на:

Expect.Call(mockEnum2.GetEnumerator()).Do(new Func<IEnumerator<IStudentUnitStatus>>(s => studentunitList.GetEnumerator())).Repeat.Any();

(Вам может потребоваться изменить IEnumerator<IStudentUnitStatus> на IEnumerator, чтобы заставить это работать.)

...