Я переписываю этот вопрос, чтобы прояснить, что мне нужно делать. Я пытаюсь использовать 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
в контексте, и я хочу, чтобы он возвращал пустой объект IQueryable<TxRxMode
> при вызове кода return m_context.TxRxModes.Where(txRxMode => txRxMode.Active);
.
Когда я запускаю это, вызов метода 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?