XCTest
Swift

SwiftでのXCTestについて

職場で「テストコード書いて」というふうに言われた。

実際に書いたことがなかったので調べながら XCTestを使ってみることにしました。

ひとまず触ってみることにしました。

Swiftのテストケースをファイル追加のステップ

  1. "New File..."
  2. "Test Case Classes" : 新しいテストクラスを追加
  3. LanguageはSwiftに設定 : ファイルを追加
  4. Bridging-Headerを追加しますか?って言われるので、Yesとして追加

これを実行すると、このテストも実行されます。

案外、簡単ですね。

※ 実は、プロジェクトを新規作成した時にテストプロジェクトも一緒に作られるみたいですね。。。

今まで知らなかった、、、

初期プロジェクトのコード

Swift.swift
import UIKit
import XCTest

class SampleTests: XCTestCase {

    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
     }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }

    func testExample() {
        // This is an example of a functional test case.
        XCTAssert(true, "Pass")
    }

    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measureBlock() {
            // Put the code you want to measure the time of here.
        }
    }
}

setUp()

意味:メソッド内でテスト開始前の準備

tearDown()

意味:メソッド内でテスト終了時の後片付け

testExample()

意味:サンプル。必ずテストが成功します。

testPerformanceExample()

意味:パフォーマンス計測テストのサンプル
measureBlock内に計測したメソッドや処理を記述する

テストの実行方法

テストの実行方法は以下の2通り

1. Test navigatorから実行

カーソルをテストクラス(SampleTests)か、各テストメソッド(testExample, testPerformanceExample)にあわせると実行ボタンが表示されています。

2. ソースコード上から実行
テストクラスを選択し、ソースコードを表示。左側のひし形にカーソルを
合わせると実行ボタンが表示される

実行してみる
・テストに成功するとひし形の箇所が緑色に変わる

※パフォーマンス計測のテストを実行した際は計測結果を表示することができる
クリックと計測結果が表示される

テストに失敗した場合、失敗した箇所のひし形が赤色に変わる

Assertメソッド一覧

XCTFail (format…)

      常に失敗となる。エラーハンドリングの時に使用する。

XCTAssertNil (a1, format…)

      Nilチェック。a1がNilでない場合失敗となる。        

XCTAssertNotNil (a1, format…)

      Nilチェック。a1がNilの場合失敗となる。

XCTAssert (a1, format…)

      a1がtrueの場合成功、falseの場合失敗となる。

XCTAssertTrue (a1, format…)

      a1がtrueの場合成功、falseの場合失敗となる。

XCTAssertFalse (a1, format…)

      a1がfalseの場合成功、trueの場合失敗となる。

XCTAssertEquals (a1, a2, format…)

      a1とa2が等しい場合成功。
      ※swiftではスカラー型もObjectも区別しないので###XCTAssertEqualsObjectsは存在しない

XCTAssertEqualsWithAccuracy (a1, a2, accuracy, format…)

      a1とa2の誤差がaccuracy内であれば成功。

XCTAssertGreaterThan (a1, a2, format…)

      a1がa2より大きい場合成功。

XCTAssertGreaterThanOrEqual (a1, a2, format…)

      a1がa2以上の場合成功。

XCTAssertLessThan (a1, a2, format…)

      a1がa2より小さい場合成功。

XCTAssertLessThanOrEqual (a1, a2, format…)

      a1がa2以下の場合成功。

制作チーム:サンストライプ

(NEWドメイン) http://sunstripe-main.jp/