我有以下几点
IdleClass idleSend = MockRepository.GenerateMock<IdleClass >();
SpeedClass speedSend = MockRepository.GenerateMock<SpeeClass >();
idleSend.Expect(x => x.IsUnitInSystem(networkID)).Return(true).Repeat.Any();
speedSend.Expect(x => x.IsUnitInSystem(networkID)).Return(true).Repeat.Any();原始的IsUnitInSystem(networkID)函数(在IdleClass和SpeedClass的子类中)如下:
public bool IsUnitInSystem(string networkID)
{
DateTime outVal = default(DateTime);
return m_list1.DoesListContainUnit(networkID) ||
m_list2.TryGetValue(networkID, out outVal) ||
m_list3.TryGetValue(networkID, out outVal) ||
m_list4.TryGetValue(networkID, out outVal) ||
m_list5.TryGetValue(networkID, out outVal);
}我在IsUnitInSystem函数的返回线上恢复一个System.NullReferenceException。
堆栈跟踪:
IdleClass.IsUnitInSystem(String networkID)
PendingTest.<ResendClassTest>b__1b(IdleClass x)
RhinoMocksExtension.Expect[T,R](T mock, Function'2 action)
PendingTest.ResendClassTest()我不明白的是,当我为函数指定了.Expect功能时,程序为什么以及如何进入函数?
发布于 2012-12-01 02:01:26
您试图模拟的方法必须能够由模拟对象实现,这意味着如果您模拟一个具体的类,它必须被标记为虚拟的。
看看下面的帖子,了解更多信息:Rhino Mocks stubs and mocks are only good for interfaces?
https://stackoverflow.com/questions/13650151
复制相似问题