【发布时间】:2010-01-30 20:31:05
【问题描述】:
我正在重写这个问题,以便更清楚地说明我需要做什么。我正在尝试使用 Rhino-Mock 进行测试:
public IQueryable<TxRxMode> GetAllModes()
{
return m_context.TxRxModes.Where(txRxMode => txRxMode.Active);
}
代码如下:
var context = MockRepository.GenerateStub<IProjectContext>();
//Returns an empty list
context.Expect(c => c.TxRxModes.Where(Arg<Func<TxRxMode, bool>>.Is.Anything)).Return(new List<TxRxMode>().AsQueryable());
TxRxModes 在上下文的IObjectSet 属性中,我希望它在调用return m_context.TxRxModes.Where(txRxMode => txRxMode.Active); 代码时返回一个空的IQueryable<TxRxMode> 对象。
当我运行它时,Expect 方法调用会抛出 ArgumentNullException:
值不能为空。 参数名称:谓词
我尝试过更简单的:
IObjectSet<TxRxMode> modes = MockRepository.GenerateStub<IObjectSet<TxRxMode>>();
context.Expect(c => c.TxRxModes).Return(modes);
但是当我调用时这会引发空引用异常
return m_context.TxRxModes.Where(txRxMode => txRxMode.Active);
基本上,这是我试图模拟的方法的一部分,所以关键问题是如何模拟这个 Where 语句?
【问题讨论】:
标签: entity-framework rhino-mocks entity-framework-4