コード内の式が正しく書かれているかどうかを調べるには、特定のコレクションで式を実行する必要があります。例のために、私はいくつかの不必要な文脈を除外しますが、誰かがそれを必要とするならば、ただコメントして、私は質問を編集し、必要なものを追加します。メソッドグループエラーを取得せずにMoqでこの式を作成するにはどうすればよいですか?
のは、私は、次のしているとしましょう:
public interface IRepository
{
IQueryable<T> Query<T>(Expression<Func<T, bool>> expression);
}
public class Repository : IRepository
{
public IQueryable<T> Query<T>(Expression<Func<T, bool>> expression)
{
return _session.Query<T>(expression);
}
}
を、私は次のようなスペックを書きたい:
internal class when_executing_some_query : given_some_repository_context
{
Establish context =() =>
{
IQueryable<SomeObject> objects = new List<SomeObject>
{
SomeObject1,
SomeObject2,
SomeObject3,
}.AsQueryable();
_expectedList = new List<SomeObject>
{
SomeObject1,
SomeObject2,
};
MockedRepository.Setup(x => x.Query<SomeObject>(Moq.It.IsAny<Expression<Func<SomeObject, bool>>>)
.Callback<Expression<Func<SomeObject, bool>>>(expression => _actualExpression = expression);
}
Because of =() => _actualList = objects.Select(_actualExpression).ToList();
It should_execute_on_queryable_and_return_the_expected_items =() => //compare _expectedList with _actualList
}
しかし、私は
言っMoq.It.IsAny<Expression<Func<SomeObject, bool>>>
上でビルドエラーを取得しています
'Project.Domain.IRepository.Query(System.Linq.Expressions.Expression>)'に最適なオーバーロードされたメソッドがあります。持っているいくつかの無効な引数が
と
引数1:エラーを修正するには、 `
おっとは、それを指摘してくれてありがとう、私はそれに応じて編集しました –