gpt4 book ai didi

fakeiteasy - 使用表达式树作为参数约束

转载 作者:行者123 更新时间:2023-12-04 02:20:38 25 4
gpt4 key购买 nike

我可以在 FakeIteasy CallTo 断言中使用表达式树作为参数约束吗?

在具有以下签名的接口(interface)上给定一个方法:

interface IRepository<TEntity>
{
TEntity Single(Expression<Func<TEntity, bool>> predicate);

像这样在代码中被调用:

Flight flight = repository.Single(f => f.ID == id);

我想到了一个单元测试做这样的事情:

Expression<Func<Flight, bool>> myExpression = flight => flight.ID == 1;

A.CallTo(() => repository.Single(
A<Expression<Func<Flight, bool>>>.That.Matches(myExpression)))
.Returns(new Flight());

但是这会产生警告:尝试显式指定类型参数

我目前不得不使用不理想的 Ignored 属性。

最佳答案

“匹配”方法采用 lambda,但您正试图将表达式传递给它。你想用“火柴”来表达什么?你匹配平等吗?在那种情况下,你只需写:

A.CallTo(() => repository.Single(myExpression)).Returns(new Flight());

如果你想将表达式限制在其他东西上,你必须传递一个类型的谓词:Func<Expression<Func<Flight, bool>>, bool>到“匹配”方法。

关于fakeiteasy - 使用表达式树作为参数约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7571200/

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