XCTestを使ってみる
※Xcode Version 6.4で確認プロジェクトを新規作成した時にテストプロジェクトも一緒に作られる
プロジェクト作ったばっかりのコードはこんな↓
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以下の場合成功。
Xcode初心者の私には意外な便利機能です。知りませんでした〜。
返信削除ありがとうございます!
色々他にもテストツールは沢山あるかと思いますが、標準で使えるので是非使ってみて下さい(^^)/
削除