首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typemock伪集合处理

Typemock伪集合处理
EN

Stack Overflow用户
提问于 2012-12-28 06:25:40
回答 1查看 411关注 0票数 2
代码语言:javascript
复制
foreach (BeamCluster cluster in executionContext.RevitModel.Beams
                                .Where(b => b.Walls.Values
                                                   .Contains(executionContext.Frame.Wall)))
        {

给定上面的代码段,我将如何使用类型mock向IEnumerable提供信息,以便能够对梁、框架和墙使用伪造?

Beams是一本字典。

executionContext的类型为TooLongContext

代码语言:javascript
复制
TooLongContext context = Isolate.Fake.Instance<TooLongContext>(Members.ReturnRecursiveFakes);
Isolate.WhenCalled(() => context.RevitModel.Beams).ReturnRecursiveFake();

在这之后我很困惑(也许在这之前我很困惑:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-28 09:28:29

首先,您需要自己创建梁和墙等的IEnumerable。Typemock (和其他模拟框架)不会自动生成有用的数据。当你让它们返回递归伪函数时,它所做的就是试图确保没有任何东西返回null (通常是通过返回所有内容的默认值)。这只能防止空引用异常,并且对许多测试用例没有那么大的用处。

因此,您需要做的就是更改上下文返回的内容。

代码语言:javascript
复制
var myFakeBeams = new List<Beam>();
//Add a bunch of fake beams
Isolate.WhenCalled(() => context.RevitModel.Beams).WillReturn(myFakeBeams);

对于其他类型,依此类推。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14062097

复制
相关文章

相似问题

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