#XCTestってなに?
iOSの単体テスト用のフレームワークで、
Xcodeでプロジェクトを作った時に一緒に作られているものです。
#とりあえず使ってみよう。
難しいことは考えず、どんなものかとりあえず実装してみましょう。
動きの確認なのでこのぐらい簡単に書いてみます。
a + b
の結果を返すだけの記述です。
import Foundation
class Sample{
func add(a:Int,b:Int) -> Int {
return a + b;
}
}
こっちは○○○Testsのフォルダに
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
の部分が右と左がイコールかどうか、
つまり5
or6
とHello().add(2, b: 3)
の結果がイコールかをチェックしています。
なので上記の結果のように、上のfunc testOK()
は緑の成功マーク
下のfunc testNO()
は赤の失敗マークがつきます。
#感想
このように本来は直接打ち込んだり、アプリを操作して行うテストを、
コードで記述してしまうことで、自動的に行えるようになります。
いやー便利便利。
作ったアプリのテストで、散々手動で値の入力などを行っていたので、
もっと早く知りたかったですね。(そもそも知らなかったのが問題、、、)
XCTAssertEqual
の部分の記述は、XCTAssertTrue
、XCTAssertFalse
など、
種類はいくつかあるようなので、用途に合うものを使って実装してみてください。
まだまだ不十分なところも多いとは思いますが、今回はこのぐらいで終わりです。
またそのうち追記していきますね。