我刚刚了解了Unit Testing in Xcode。现在我正在尝试使用Xcode 7,当我创建一个新项目时,我发现有一个新的UI测试组。
我看了WWDC 2015 video并且它非常好,但是你有一个超级简单的例子我可以通过自己吗?视频示例对我来说有点过于复杂。
备注
答案 0 :(得分:46)
使用单元测试来测试类中方法的有效性。您可以使用它们来测试您编写的代码。 (有关在Xcode中设置简单的单元测试,请参阅my other example。)
使用 UI测试检查用户界面的有效性。可以把它想象成拥有自己的机器人,并与普通用户的应用程序进行所有正常的交互。这样可以节省您自己完成的时间。
在撰写本文时,很难访问UI组件的许多属性,但只需通过点击它们并轻扫它们即可确认它们在那里。
这是关于我能想到的最简单的设置和UI测试:按下时按钮会更改标签的文本。
如果要向Xcode 7之前创建的项目添加UI测试,请参阅this answer。 (文件>新>目标>测试> Cocoa Touch UI测试包)
在故事板中添加UILabel
和UIButton
在ViewController
中创建一个@IBOutlet和@IBAction,并在按下label
时更改button
文本。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBAction func button(sender: AnyObject) {
label.text = "Hello"
}
}
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测试。它通过时应该变成绿色。
UIButton
和UILabel
,并且标签的文本发生了变化。如果你想看到它失败(一个好主意),你可以改变"你好"别的什么。答案 1 :(得分:7)
@Suragch +1代答。我观察并希望分享的一件事是,UI测试用例中的每个函数都必须以" test"开头。之后你可以追加额外的名字。只有这样才会出现按钮(用于点击开始测试)。