gpt4 book ai didi

c# - Typemock 假集合处理

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:29 25 4
gpt4 key购买 nike

foreach (BeamCluster cluster in executionContext.RevitModel.Beams
.Where(b => b.Walls.Values
.Contains(executionContext.Frame.Wall)))
{

鉴于上面的代码片段,我将如何使用类型 mock 将信息馈送到 IEnumerable 中,以便我也能够对梁、框架和墙壁使用假体?

Beams 是一本字典。

executionContext 是 TooLongContext 类型

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

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

最佳答案

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

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

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

其他类型依此类推。

关于c# - Typemock 假集合处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062097/

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