模拟通用存储库单元测试
Mocking Generic Repository unit test
我正在创建一个单元测试并且我正在使用 rhino 模拟(我以前从未使用过任何类型的模拟,(如果你们知道如何使用另一个模拟框架来处理它,请告诉我一些他们的例子)).
在我的场景中,我试图模拟以下通用存储库
public interface Repository
{
IEnumerable<TEntity> Search(Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> order = null);
}
我的单元测试:
_classRepository.Stub(x => x.Search(myclass =>
myclass.id == 1 &&
).Return(arrayClass.AsQueryable());
数组class只有一个id为1的寄存器
当我 运行 我的测试时,我收到以下消息:
Value cannot be null.
Parameter name: source
我将模拟框架更改为最小起订量时解决了我的问题。
所以我可以在我的模拟设置中使用 lambda 表达式。
_myclassRepository.Setup(x => x.Search(
myclass => myclass.id == 1,
It.IsAny<Func<IQueryable<MyClass>, IOrderedQueryable<MyClass>>>(),
It.IsAny<string>(),
It.IsAny<int>())).Returns(arrMyClass);
我正在创建一个单元测试并且我正在使用 rhino 模拟(我以前从未使用过任何类型的模拟,(如果你们知道如何使用另一个模拟框架来处理它,请告诉我一些他们的例子)).
在我的场景中,我试图模拟以下通用存储库
public interface Repository
{
IEnumerable<TEntity> Search(Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> order = null);
}
我的单元测试:
_classRepository.Stub(x => x.Search(myclass =>
myclass.id == 1 &&
).Return(arrayClass.AsQueryable());
数组class只有一个id为1的寄存器
当我 运行 我的测试时,我收到以下消息:
Value cannot be null. Parameter name: source
我将模拟框架更改为最小起订量时解决了我的问题。 所以我可以在我的模拟设置中使用 lambda 表达式。
_myclassRepository.Setup(x => x.Search(
myclass => myclass.id == 1,
It.IsAny<Func<IQueryable<MyClass>, IOrderedQueryable<MyClass>>>(),
It.IsAny<string>(),
It.IsAny<int>())).Returns(arrMyClass);