【发布时间】:2016-05-25 20:29:48
【问题描述】:
我创建了这样的模拟测试:
IGroup studentGrp = MockRepository.GenerateMock<IGroup>();
stubApplication.Stub(x => x.GetGroup("STUDENT"))
.Return(studentGrp);
studentGrp.Stub(x => x.EntityCount)
.Return(1);
stubApplication.Stub(x => x.GetGroup("STUDENT").GetEntity(0).GetField("role_numb"))
.Return(genericFieldValue);
代码:
for(int i = 0; i < StudentApplication.GetGroup("STUDENT").EntityCount; i++)
{
if (StudentApplication.GetGroup("STUDENT").GetEntity(i).GetField("role_num").GetInternalValue() == "Y")
{
//Do Something..
}
}
但我无法运行上面的代码不断收到:NullReferenceException。
【问题讨论】:
-
如果您使用变量和单独的语句而不是链接所有这些方法调用,例如 var entity = StudentApplication.GetGroup("STUDENT").GetEntity(i); 可能有助于调试var field = entity.GetField("role_num"); - 你明白了
-
@AlexandruMărculescu 你在不知不觉中提供了答案...... Rhinomocks 不支持 lambda 聚合......我在回答中解释了更多
标签: c# unit-testing mocking rhino-mocks