gpt4 book ai didi

c# - Moq TargetParameterCountException 与 lambda 表达式

转载 作者:太空狗 更新时间:2023-10-30 00:08:29 25 4
gpt4 key购买 nike

我有一个奇怪的问题:当我使用 mu 存储库 stub 时,我得到了一个奇怪的异常:

System.Reflection.TargetParameterCountException

创建 stub (在测试方法中):

var repositoryStub = new Mock<IRepository<User>>();
repositoryStub.Setup(m => m.FindAll(It.IsAny<Expression<Func<User,bool>>>())).Returns(TestGlobals.TestUsers.AsQueryable<User>);

接口(interface):

IQueryable<T> FindAll(System.Linq.Expressions.Expression<Func<T, bool>> whereExpression);

每次调用 FindAll 都会抛出该错误 :( 我在许多其他地方都以这种方式进行 mock ,但现在我找不到那个奇怪问题的根源 :(

最佳答案

您在 AsQueryable 调用后遗漏了一对括号:

repositoryStub.Setup(m => m.FindAll(It.IsAny<Expression<Func<User,bool>>>())).Returns(TestGlobals.TestUsers.AsQueryable<User>());

Returns 方法有多个重载,其中大部分采用 Func 并且在没有括号的情况下它使用这些重载之一,因为您没有指定参数,这就是它抛出异常的原因。

关于c# - Moq TargetParameterCountException 与 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com