ページ

2016年3月19日土曜日

SwiftでRSpecみたいに書けるQuickを使ってみる 1



Quickとは?
SwiftやObjective-CでRSpecみたいに書けるテストフレームワーク
公式ページ
また、Quickを使うにはNimbleが必要らしい。

Nimbleって?
ざっくりな説明ですが・・・
以前にXcodeに含まれる標準のXCTestを軽く紹介しましたが、
このXCTestで例えば 1 + 1 = 2のテストを書くと、
XCTAssertEqual(1 + 1, 2, "1足す1は2!!")
とこうなるが、Nimbleでは
expect(1 + 1).to(equal(2))
こう書くことができる。直感的です^^

インストール


早速インストール・・の前に今回テスト用のプロジェクトを作成します。
テンプレートとしてSingle View Applicationを選択。

プロジェクト名をQuickSampleとしました。
※ Testにチェックを忘れずに入れる
そしてインストールはCocoaPodsを使ってインストールしていきます。
※ CocoaPodsに関してはこちらを参照
作成したプロジェクト直下にPodfileを以下の内容で作成。
use_frameworks!

def quick_pods
    pod 'Quick', '~> 0.9.0'
    pod 'Nimble', '3.0.0'
end

target 'QuickSampleTests' do
    quick_pods
end
インストールを実行
$ pod install
インストールが成功するとQuickSample.xcworkspaceが作成されているので、
こちらを開きます。
$ open QuickSample.xcworkspace

これでインストールは完了です。

テストを書いてみる


実際にテストを書いてみたいと思います。
プロジェクト内にQuickSampleTestsが作成されていると思うので、
まず名前をQuickSampleSpecに変更します。
次にQuickSampleSpecを以下に編集します。
import Quick
import Nimble

class QuickSampleSpec: QuickSpec {
    override func spec() {
        describe("sample test") {
            it("1 + 1 = 2!!") {
                expect(1 + 1).to(equal(2))
            }
        }
    }
}
いたってシンプルですが、RSpecのような構文になっているかと思います。
当然テスト結果は成功になります。

また、配列に含まれているかのテストも↓のように書けます。
it("array contain") {
    expect(["luffy", "chopper", "zoro"]).to(contain("zoro"))
}
他にも便利なものがたくさんありますが、今回はここまで。

0 件のコメント:

コメントを投稿