小编Joh*_*din的帖子

带有It.IsAny的表达式<Func <T,bool >>总是返回true

我正在尝试创建一个通用的测试类来测试我的通用控制器.一切都工作正常,除了这个:我有一个像这样的方法:

private T GetSingle(Expression<Func<T, bool>> expression)
Run Code Online (Sandbox Code Playgroud)

我正试图像这样设置测试:

var Guids = new[] { Guid.NewGuid(), Guid.NewGuid() };
var items = Guids.Select(x => new T {Id = x});
var mock = new Mock<IRepository<T>>();
mock.Setup(m => m.GetSingle(
    It.IsAny<Expression<Func<T, bool>>>()))
   .Returns(new T());
Run Code Online (Sandbox Code Playgroud)

并执行这样的测试:

var value = Repository.GetSingle(x=> x.Id == Guid.NewGuid());
Run Code Online (Sandbox Code Playgroud)

总是会带来新的T.

我的设置错了吗?

c# generics unit-testing moq expression-trees

5
推荐指数
1
解决办法
1988
查看次数

标签 统计

c# ×1

expression-trees ×1

generics ×1

moq ×1

unit-testing ×1