gpt4 book ai didi

c# - Rhino Mocks - 使用 Arg.Matches

转载 作者:IT王子 更新时间:2023-10-29 04:38:16 26 4
gpt4 key购买 nike

我有一个正在模拟的函数,它将参数对象作为参数。我想根据对象中的值返回结果。我无法比较这些对象,因为没有覆盖 Equals。

我有以下代码:

_tourDal.Stub(x => x.GetById(Arg<TourGet>.Matches(y => y.TourId == 2), null)).Return(
new Tour()
{
TourId = 2,
DepartureLocation = new IataInfo() { IataId = 2 },
ArrivalLocation = new IataInfo() { IataId = 3 }
});

当提供的参数的 TourId 为 2 时,这应该返回指定的对象。

这看起来应该可以,但是当我运行它时,出现以下异常:

When using Arg, all arguments must be defined using Arg.Is, Arg.Text, Arg.List, Arg.Ref or Arg.Out. 2 arguments expected, 1 have been defined.

有什么想法可以解决这个问题吗?

最佳答案

您需要对第二个 null 参数使用相同的语法,大致如下(我还没有测试过):

_tourDal.Stub(x => x.GetById(Arg<TourGet>.Matches(y => y.TourId == 2), Arg<TypeName>.Is.Null)).Return(
new Tour()
{
TourId = 2,
DepartureLocation = new IataInfo() { IataId = 2 },
ArrivalLocation = new IataInfo() { IataId = 3 }
});

关于c# - Rhino Mocks - 使用 Arg.Matches,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3520911/

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