Xcodeの単体テスト について最近知りました。今、Xcode 7を試していますが、新しいプロジェクトを作成すると、UIテスト用の新しいグループがあります。
WWDC 2015ビデオ を見ましたが、それはかなり良かったのですが、自分で試してみることができる非常に簡単な例はありますか?ビデオの例は私には少し複雑すぎました。
注
Unit Testsを使用して、クラス内のメソッドの有効性をテストします。それらを使用して、作成したコードをテストします。 (Xcodeで簡単な単体テストを設定するには、 他の例 を参照してください。)
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
が存在し、ラベルのテキストが変更されたことがわかりました。失敗したい場合は(良い考え)、「Hello」を別のものに変更できます。@ Suragch +1の答え。私が観察し、共有したいことの1つは、UIテストケース内のすべての関数が「test」で始まる必要があることです。その後に追加の名前を追加できます。この方法でのみ(クリックしてテストを開始するための)ボタンが表示されます。