私はこの質問を書き直して、私が何をする必要があるかを明確にします。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をスローします。
値をnullにすることはできません。パラメータ名:述語
私はもっと簡単なものを試しました:
IObjectSet<TxRxMode> modes = MockRepository.GenerateStub<IObjectSet<TxRxMode>>();
context.Expect(c => c.TxRxModes).Return(modes);
しかし、これは私が呼び出すときにnull参照例外をスローします
return m_context.TxRxModes.Where(txRxMode => txRxMode.Active);
基本的に、これは私がモックしようとしている方法の一部なので、重要な質問は、このWhereステートメントをどのようにモックするかです。