首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数和“FakeItEasy”参数

参数和“FakeItEasy”参数
EN

Stack Overflow用户
提问于 2011-10-20 07:18:30
回答 1查看 1.9K关注 0票数 3

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

代码语言:javascript
复制
Foo GetFooById( int id, params string[] children )

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

在我的单元测试中,我写了以下代码:

代码语言:javascript
复制
IDal dal = A.Fake<IDal>();

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

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

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

代码语言:javascript
复制
A.CallTo(()=>dal.GetFooById(7, new string[]{"SomeChild"})).Returns(fooToReturn);

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

代码语言:javascript
复制
A.CallTo(()=>dal.GetFooById(7, A<string[]>.Ignored )).Returns(fooToReturn);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-21 17:02:31

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

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

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

代码语言:javascript
复制
A.CallTo(() => dal.GetFooById(7, A<string[]>.That.IsSameSequenceAs("SomeChild"))).Returns(fooToReturn);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7829370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档