【问题标题】:Typemock fake collection handlingTypemock 假收集处理
【发布时间】:2012-12-27 22:25:40
【问题描述】:
foreach (BeamCluster cluster in executionContext.RevitModel.Beams
                                .Where(b => b.Walls.Values
                                                   .Contains(executionContext.Frame.Wall)))
        {

鉴于上面的一段代码,我将如何使用 type mock 将信息输入 IEnumerable,以便我能够使用假货来制作横梁、框架和墙壁?

Beams 是一本字典。

executionContext 是 TooLongContext 类型

TooLongContext context = Isolate.Fake.Instance<TooLongContext>(Members.ReturnRecursiveFakes);
Isolate.WhenCalled(() => context.RevitModel.Beams).ReturnRecursiveFake();

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

【问题讨论】:

    标签: c# c#-4.0 typemock


    【解决方案1】:

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

    所以你需要做的就是改变你的上下文返回的内容。

    var myFakeBeams = new List<Beam>();
    //Add a bunch of fake beams
    Isolate.WhenCalled(() => context.RevitModel.Beams).WillReturn(myFakeBeams);
    

    其他类型以此类推。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2017-06-11
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      相关资源
      最近更新 更多