gpt4 book ai didi

使用模拟和屏幕截图进行 iOS UI 测试

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

我想用 iOS 设置一个 UI 测试系统,让我只测试一个 ViewController 或 UIView 这样

a) 我可以为它提供模拟数据b) 我可以将它的 View 呈现给模拟器c) 我可以截屏,将其保存到磁盘并聚合快照(如快照)

为什么?1) QA 团队希望快速验证 UI 的外观是否符合预期2) 我们希望能够快速迭代位于深处的复杂编程 View 的外观,而 Interface Builder 无法以任何有意义的方式支持这些 View 。

Xcode 7 UI 测试不适合这个目的,因为您实际上无法编译任何原始代码。

Logic XCTest 框架似乎更合适,但可以理解的是,它不愿意在屏幕上呈现任何内容。我不在乎:我想要在屏幕上呈现一些东西。

请不要再对真正的 TDD 和 UI 与逻辑测试进行教条式的哲学谩骂。使用 Android Studio 完全可以做到这一点,我已经使用它取得了很大的成功。

在此先感谢您的帮助。

例子

Model * model = [[MockModel init] alloc]
model.value = @(10)

UIViewController * importantViewController= [[ImportantViewController alloc] initWithModel:model];

TestAppDelegate *appDelegate = (TestAppDelegate *)[UIApplication sharedApplication].delegate;

UINavigationController *navController = (UINavigationController*)appDelegate.window.rootViewController;

[navController pushViewController:importantViewController animated:NO];

TakeSnapshot("Important01")

最佳答案

Facebook 创建了一个优秀的图书馆 iOS-Snapshot-Test-Case做 UIViews 和 CALayers 的快照测试。使用它,您可以创建单元测试,生成您的 View 的 .png 文件,并将它们与之前生成的(已知良好的)示例进行比较。

所有渲染都在屏幕外完成,速度非常快。但它没有对测试 UIViewController 的内置支持。因此,您可能需要做一些调整才能使其正常工作,这不会比确保 Root View 已实例化并使用合理的(设备大小)框架布局更复杂。

有一点需要注意。无论出于何种原因,Facebook 认为没有必要允许您在编写测试时定义设备分辨率(1x、2x、3x)。因此,您需要注意记录和运行测试的设备。

关于使用模拟和屏幕截图进行 iOS UI 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34340467/

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