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通り

１. Test navigatorから実行

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

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

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

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

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


##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の場合失敗となる。
###XCTAssertEqual (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以下の場合成功。
---


## 関連記事

【About】(http://qiita.com/sunstripe) - サンストライプ

---

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

[![sunstripe_logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80600/322f2d60-f19d-af9e-2b6f-7290ca546848.png)](http://sunstripe.main.jp/)
http://sunstripe.main.jp/

(月１WEBコンテンツをリリースして便利な世の中を作っていくぞ！！ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中！!)

### 地域情報 THEメディア
THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます！！
https://the.themedia.jp/

### ゼロからはじめる演劇ワークショップ
多様化の時代に向けて他者理解を鍛える

https://workshop.themedia.jp/

### プログラミングワークショップ・ウェブ塾の開講！！！
様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら　↓　↓　↓　↓　↓　↓　↓　↓
[プログラミングサロン 月１だけのプログラミング学習塾](https://workshop.themedia.jp/posts/7057553?fbclid=IwAR32CfRQ7RvDOhvuogoSwqxDLMOU7Jvuzljlnx-TMc27qBPX1BnWsfLcBR8
)

### 協力応援 / 支援者の集い
## チーム：サンストライプ
#### プログラミングラボ
https://twitter.com/sunstripe2011

一緒にポートフォリオを作りませんか？現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週１のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております！！

興味がある方は、DMに話しかけてみてください。

## トラストヒューマン
http://trusthuman.co.jp/
私たちは何よりも信頼､人と考えてます｡

｢コンサルティング｣と｢クリエイティブ｣の両角度から｢人材戦略パートナー｣としてトータル的にサポートします！！

キャリア教育事業
広域学習支援プラットフォーム『のびのび日和』
https://slc-lab.amebaownd.com/

#スポンサー募集