読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

SwiftのテストフレームワークQuickをインストール

Quickについてはココを参考に。

とりあえず、インストールしてちょっと試した時のメモです。

Quickのインストール

Git Submodule

ディレクトリVendorを作りSubmoduleとしてQuickをインストールします。READMEのココと同じ手順ですね。

Quick/Nimble はQuickが使用してるマッチャーなのでこれも合わせてインストールします。

$ mkdir Vendor
$ git submodule add git@github.com:Quick/Quick.git Vendor/Quick
$ git submodule add git@github.com:Quick/Nimble.git Vendor/Nimble
$ git submodule update --init --recursive

プロジェクトに追加

Testターゲットのグループを右クリックしてAdd Files to App...を選択します。

f:id:STAR_ZERO:20150124130843p:plain

Vendor/Quick/Quick.xcodeprojを選択します。

f:id:STAR_ZERO:20150124130910p:plain

Nimbleも同様にプロジェクトへ追加します。

Build Phases追加

TestターゲットのBuild PhasesへQuick.frameworkNimble.frameworkを追加します。

f:id:STAR_ZERO:20150124130922p:plain

テスト実行

試しに簡単なテストを書いてみます。

テスト対象クラス

単純な足し算をするだけの処理です。これをアプリのターゲットのほうに書きます。

Testターゲットから参照できるようにpublicをつける必要があります。

import Foundation

public class Calculator {
    public class func addValue1(value1: Int, value2: Int) -> Int {
        return value1 + value2
    }
}

テストコード

Testターゲットのほうに書くコードです。アプリターゲットのほうを参照するためにimportで指定しています(この例だとQuickSample)

import Quick
import Nimble
import QuickSample

class QuickSampleSpec: QuickSpec {
    override func spec() {
        it("add") {
            let result = Calculator.addValue1(1, value2: 2)
            expect(result).to(equal(3))
        }
    }
}

テスト実行

⌘ + Uで実行です。

テンプレートファイル

インストール

Specファイル用のテンプレートも用意されてるのでインストールしてみます。

AlcatrazからQuick Templatesで検索するとでてくるので、それをインストールします。

インストールしたらXcode再起動しておきます。

f:id:STAR_ZERO:20150124131028p:plain

※AlcatrazはXcodeプラグインマネージャーで詳しくはググってみてください。

テンプレートからファイル作成

新規ファイル作成時にQuick Templatesが選択できるようになります。

f:id:STAR_ZERO:20150124131037p:plain

こんな感じのファイルができると思います。

import Quick
import Nimble

class QuickSampleSpec: QuickSpec {
    override func spec() {

    }
}

ほんの少しですが、効率化できるかも?

まとめ

導入自体はそこまで難しくなくRSpec形式で書けるので良い感じです。

Swiftはちょいちょい書いてるけどテストまでは手を出せてなかったので少しずつやらないと…