我正在尝试测试这条语句
IStudentAssessmentUnitStatus res = student.UnitStatusList.OfType<IStudentAssessmentUnitStatus>().
FirstOrDefault(s => s.ID == unit.ID);在列表中可能有多个类型,因此是OfType。但是在测试时,它会显示"Object reference not set to an instance“
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();任何一位Rhino专家都能看到我做错了什么。上面的代码对于枚举很有效,从技术上讲,OfType应该只做一个foreach并执行一个"is“操作
谢谢
发布于 2010-10-26 13:45:02
尝试将最后一行替换为:
Expect.Call(mockEnum2.GetEnumerator()).Do(new Func<IEnumerator<IStudentUnitStatus>>(s => studentunitList.GetEnumerator())).Repeat.Any();(您可能必须将IEnumerator<IStudentUnitStatus>更改为IEnumerator才能使其正常工作。)
https://stackoverflow.com/questions/4020513
复制相似问题