gpt4 book ai didi

FakeItEasy & "params"参数

转载 作者:行者123 更新时间:2023-12-01 11:04:04 29 4
gpt4 key购买 nike

我有一个具有以下签名的方法。

Foo GetFooById( int id, params string[] children )

此方法在名为 IDal 的接口(interface)上定义。

在我的单元测试中,我写了以下内容:

IDal dal = A.Fake<IDal>();

Foo fooToReturn = new Foo();
fooToReturn.Id = 7;

A.CallTo(()=>dal.GetFooById(7, "SomeChild")).Returns(fooToReturn);

当测试运行时,签名与第二个参数不匹配。我尝试将其更改为:

A.CallTo(()=>dal.GetFooById(7, new string[]{"SomeChild"})).Returns(fooToReturn);

但这也没有成功。我能让它工作的唯一方法是使用:

A.CallTo(()=>dal.GetFooById(7, A<string[]>.Ignored )).Returns(fooToReturn);

我希望能够指定第二个参数的值,这样如果有人更改它,单元测试就会中断。

最佳答案

更新:我不确定什么时候,但这个问题早就解决了。 FakeItEasy 2.0.0 开箱即用地支持所需的行为。

在调用规范的解析中可能会出现特殊情况的参数数组。请提交问题:https://github.com/patrik-hagne/FakeItEasy/issues?sort=created&direction=desc&state=open

在那之前,最好的解决方法是:

A.CallTo(() => dal.GetFooById(7, A<string[]>.That.IsSameSequenceAs("SomeChild"))).Returns(fooToReturn);

关于FakeItEasy & "params"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829370/

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