设为首页 加入收藏

TOP

Xcode 7 中的 UI 测试功能(二)
2015-07-26 13:14:22 来源: 作者: 【 】 浏览:69
Tags:Xcode 测试 功能


另一个建议就是自始至终都不用断言,那样在运行测试的时候如果解析出的查询结果并不能匹配到一个元素则测试就会自动失败。如果想这样做,别忘了在 setup 方法里关闭(注释)[XCTestCase -continueAfterFailure] 这项。


我经常用到的调试方法是打断点或者在控制台输出对象的内容(我知道这难以置信)。在测试代码中设置断点并且命中断点,调试器就会定位到问题所在。但是你不能在一个 app 的代码里加装调试器。由于打印的日志语句会在控制台里显示,所以要利用这个来调试。


Table with five cells



当在控制台输出 XCUIElementQuery 的结果时,马上就会出现许多无关的干扰输出。试想一个表里有标着"1"到"5"标签的五个单元。触摸带有标签"3"的单元时候你可以打印如下的日志(为了清晰显示,这里忽略一些关键字输出):


(lldb) po app.tables.element.cells[@"Three"]
Query chain:
?→Find: Target Application
? ??Find: Descendants matching type Table
? ? Input: {
? ? ? Application:{ {0.0, 0.0}, {375.0, 667.0} }, label: "Demo"
? ? }
? ? Output: {
? ? ? Table: { {0.0, 0.0}, {375.0, 667.0} }
? ? }
? ? ??Find: Descendants matching type Cell
? ? ? Input: {
? ? ? ? Table: { {0.0, 0.0}, {375.0, 667.0} }
? ? ? }
? ? ? Output: {
? ? ? ? Cell: { {0.0, 64.0}, {375.0, 44.0} }, label: "One"
? ? ? ? Cell: { {0.0, 108.0}, {375.0, 44.0} }, label: "Two"
? ? ? ? Cell: { {0.0, 152.0}, {375.0, 44.0} }, label: "Three"
? ? ? ? Cell: { {0.0, 196.0}, {375.0, 44.0} }, label: "Four"
? ? ? ? Cell: { {0.0, 240.0}, {375.0, 44.0} }, label: "Five"
? ? ? }
? ? ? ??Find: Elements matching predicate ""Three" IN identifiers"
? ? ? ? Input: {
? ? ? ? ? Cell: { {0.0, 64.0}, {375.0, 44.0} }, label: "One"
? ? ? ? ? Cell: { {0.0, 108.0}, {375.0, 44.0} }, label: "Two"
? ? ? ? ? Cell: { {0.0, 152.0}, {375.0, 44.0} }, label: "Three"
? ? ? ? ? Cell: { {0.0, 196.0}, {375.0, 44.0} }, label: "Four"
? ? ? ? ? Cell: { {0.0, 240.0}, {375.0, 44.0} }, label: "Five"
? ? ? ? }
? ? ? ? Output: {
? ? ? ? ? Cell: { {0.0, 152.0}, {375.0, 44.0} }, label: "Three"
? ? ? ? }


它准备好了吗?


作为 Xcode 7 Beta 2,UI 测试做出了承诺。Xcode 7 Beta 2 是可靠的,它的查询引擎功能十分强大,并且在未来比任何第三方库都有用。


然而,它还有些奇怪的地方。目前,它还没办法等待元素的出现或者消失。这就以为着,在你继续工作之前,你无法等待网络活动的完成。我用尽了所有异步测试方法去循环好用但是老旧的 sleep()。


不幸的是,只要你搞砸了任何 App 的时序,Xcode 就开始卡壳,并且测试就会崩溃。


Xcode 试图去记录那些没有注册的特定事件。例如,任何与 WKWebView 的交互都必须手写。幸运的是当请求位置授权时,会与系统警报进行交互。我希望这些问题会在下个 beta 版本发行时能被 GM 修复。


总而言之,我认为每个人都至少应该在自己的项目上使用 UI 测试。它提供了一个验证你的应用程序的新的方法,而且它还提供了第二层测试说明,App 商店中的任何 App 都能从中受益。让我兴奋的是,未来它将整合进我每天工作的项目中,并且十分期待社区会如何使用它。


英文原文:UI Testing in Xcode 7


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇PHP 安全编程建议 下一篇设计模式学习之——命令模式

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: