XCTestをとりあえず使ってみた。


XCTestってなに?

iOSの単体テスト用のフレームワークで、
Xcodeでプロジェクトを作った時に一緒に作られているものです。

とりあえず使ってみよう。

難しいことは考えず、どんなものかとりあえず実装してみましょう。

動きの確認なのでこのぐらい簡単に書いてみます。
a + bの結果を返すだけの記述です。

Sample.swift
import Foundation

class Sample{
    func add(a:Int,b:Int) -> Int {
        return a + b;
    }
}

こっちは○○○Testsのフォルダに

SampleTest.swift
import XCTest

class SampleTest: XCTestCase {

    override func setUp() {
        super.setUp()  
    }

    override func tearDown() {
        super.tearDown()
    }

    func testOK() {

        XCTAssertEqual(5, Sample().add(2, b: 3));
    }

    func testNo() {

        XCTAssertEqual(6, Sample().add(2, b: 3));
    }

}

⌘+UでTestを実行してみるとこのような結果に

XCTAssertEqual(5, Hello().add(2, b: 3));
XCTAssertEqual(6, Hello().add(2, b: 3));
のそれぞれにマークが付いていますね。

これはXCTAssertEqualの部分が右と左がイコールかどうか、
つまり5or6Hello().add(2, b: 3)の結果がイコールかをチェックしています。

なので上記の結果のように、上のfunc testOK()は緑の成功マーク
下のfunc testNO()は赤の失敗マークがつきます。

感想

このように本来は直接打ち込んだり、アプリを操作して行うテストを、
コードで記述してしまうことで、自動的に行えるようになります。

いやー便利便利。
作ったアプリのテストで、散々手動で値の入力などを行っていたので、
もっと早く知りたかったですね。(そもそも知らなかったのが問題、、、)

XCTAssertEqualの部分の記述は、XCTAssertTrueXCTAssertFalseなど、
種類はいくつかあるようなので、用途に合うものを使って実装してみてください。

まだまだ不十分なところも多いとは思いますが、今回はこのぐらいで終わりです。
またそのうち追記していきますね。