[.net] Ошибка Rhino Mocks: Предыдущий метод 'IEnumerator.MoveNext ();' требует возвратного значения или исключения для броска


0 Answers

С тех пор я удалил нарушивший код; однако я никогда не понимал, почему он ведет себя так, как это было.

Question

У меня есть следующий тестовый код:

parentViewModel = MockRepository.GenerateMock<IParentViewModel>();
parentViewModel.Expect(x => x.GetPropertyValue<IEnumerable<Milestone>>("JobMilestones")).Return(new Milestone[0]);

viewModel = new JobPenaltiesViewModel(j, new Penalty[0], _opContext, parentViewModel);

Assert.That(viewModel.Milestones.Count(), Is.EqualTo(0));
parentViewModel.VerifyAllExpectations();

List<string> propsChanged = new List<string>();
viewModel.PropertyChanged += (s, e) => propsChanged.Add(e.PropertyName);

parentViewModel.Raise(x => x.PropertyChanged += null, parentViewModel, new PropertyChangedEventArgs("JobMilestones"));

AssertPropertiesChangedAsExepected(propsChanged, 1, "Milestones");

Milestone m1 = GenerateMilestone(j);
List<Milestone> milestones1 = new List<Milestone> { m1 };
parentViewModel.Expect(x => x.GetPropertyValue<IEnumerable<Milestone>>("JobMilestones")).Return(milestones1).Repeat.Any();

IEnumerable<Milestone> milestones = viewModel.Milestones;
Assert.That(milestones.Count(), Is.EqualTo(1));
parentViewModel.VerifyAllExpectations();

Все тесты и утверждения доходят до:

Assert.That(milestones.Count(), Is.EqualTo(1));

Вот где я получаю исключение:

Previous method 'IEnumerator.MoveNext();' requires a return value or an exception to throw.

Я пробовал все, что мог придумать, и мое тестирование, похоже, указывает на то, что parentViewModel Mock возвращает null или пустую перечисление (т. Е. Когда я использую отладчик для проверки возвращаемого значения, «Просмотр результатов» говорит, что перечисление не возвратило Результаты).

Что мне здесь не хватает?






Related