繁体   English   中英

Xcode UI测试示例

[英]Xcode UI Test example

我刚刚学习了Xcode中的单元测试 现在我正在尝试Xcode 7,当我创建一个新项目时,我看到有一个新的UI测试组。

在此输入图像描述

我观看了WWDC 2015视频并且它非常好,但你有一个超级简单的例子,我可以自己完成吗? 视频示例对我来说有点过于复杂。

笔记

使用单元测试来测试类中方法的有效性。 您可以使用它们来测试您编写的代码。 (参见在Xcode中设置简单单元测试的另一个例子 。)

使用UI测试检查用户界面的有效性。 可以把它想象成拥有自己的机器人,并与普通用户的应用程序进行所有正常的交互。 这样可以节省您自己完成的时间。

在撰写本文时,很难访问UI组件的许多属性,但只需通过点击它们并轻扫它们即可确认它们在那里。

这是关于我能想到的最简单的设置和UI测试:按下时按钮会更改标签的文本。

建立

  • 在Xcode 7+中为iOS 9.0+创建一个新项目。
  • 确保选中“包含UI测试”

在此输入图像描述

  • 如果要将UI测试添加到在Xcode 7之前创建的项目,请参阅此答案 (文件>新建>目标>测试> Cocoa Touch UI测试包)

  • 在故事板中添加UILabelUIButton

在此输入图像描述

  • ViewController创建一个@IBOutlet和@IBAction,并在按下button时更改label文本。

     import UIKit class ViewController: UIViewController { @IBOutlet weak var label: UILabel! @IBAction func button(sender: AnyObject) { label.text = "Hello" } } 

做测试

  • 打开YourProject UITests文件。

在此输入图像描述

  • 将你的光标放在testExample()方法中。 (你可以删除评论)

在此输入图像描述

  • 按红色“录制”按钮

在此输入图像描述

  • 在应用程序中,(1)点击标签,(2)点击按钮,然后(3)再次点击标签。 (4)再次按“录制”按钮停止录制。 应该已经为您自动生成以下代码:

     func testExample() { let app = XCUIApplication() app.staticTexts["Label"].tap() app.buttons["Button"].tap() app.staticTexts["Hello"].tap() } 
  • 使用staticText行作为制作XCTAssert 现在你应该:

     func testExample() { let app = XCUIApplication() XCTAssert(app.staticTexts["Label"].exists) app.buttons["Button"].tap() XCTAssert(app.staticTexts["Hello"].exists) } 
  • 按左侧的菱形以运行UI测试。 它通过时应该变成绿色。

在此输入图像描述

  • 而已! 这表明存在UIButtonUILabel ,并且标签的文本发生了变化。 如果你想看到它失败(一个好主意),你可以将“Hello”更改为其他内容。

进一步研究

@Suragch +1的答案。 我观察并想要分享的一件事是UI测试案例中的每个函数都必须以“test”开头。 之后你可以追加额外的名字。 只有这样才会出现按钮(用于点击开始测试)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM