私は汎用リポジトリをモックしており、Retrieve メソッドに 2 番目の引数を追加して、オブジェクト プロパティのインクルード文字列を渡すことができるようにしました。これをモックする方法に少し行き詰まり、TargetParameterCountException
.
誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.
インターフェース:
IQueryable<T> Retrieve(Expression<Func<T, bool>> predicate);
IQueryable<T> Retrieve(Expression<Func<T, bool>> predicate, IEnumerable<string> includes);
モク:
var mActionRepository = new Mock<IRepository<ContainerAction>>();
mActionRepository.Setup(m => m.Retrieve(It.IsAny<Expression<Func<ContainerAction, bool>>>()))
.Returns<Expression<Func<ContainerAction, bool>>>(queryable.Where);
mActionRepository.Setup(m => m.Retrieve(It.IsAny<Expression<Func<ContainerAction, bool>>>(), It.IsAny<IEnumerable<string>>()))
.Returns<Expression<Func<ContainerAction, bool>>>(queryable.Where);
最初の Moq は機能しましたが、2 番目の Moq は機能しませんでした。