現代の開発現場において欠かせないCI/継続的デリバリを、iOSアプリ開発に適用するためのツールやノウハウを解説する連載。今回は、iOSアプリの機能の振る舞いをテストするテスティングフレームワークの特長とインストールの仕方、主な使い方を解説します。
前回の「iOSアプリ開発でCI/継続的デリバリ環境を始めるための4種の神器」では、CI/継続的デリバリ環境を構築するために必要なツール・サービスを紹介しました。
今回はiOSアプリのためのテスティングフレームワークの1つである「Kiwi(キウィ)」を使った振る舞いテストの書き方について解説します。
KiwiはiOSアプリケーションの機能の振る舞いをテストすることを目的としたテスティングフレームワークです。次のような特長があります。
Kiwiでは、Rubyの「RSpec」(xSpec)風にテストコードを記述します。自然言語に近く可読性が高いので、テストコードをそのまま要求仕様の確認に使えます。また、逆に要求仕様からテストコードに起こす場合もスムーズに進められます。
Kiwiは内部でSenTesting/XCTestを使用しています。そのため、Xcodeのテスト機能を利用できます。
例えば[Command]+[U]キーのショートカットを使ってテストを容易に実行できます。また、Xcode 5から「テストナビゲーター」というテストを実行するための機能が追加されました。この機能を使うと、成功/失敗したテストケースにすぐにアクセスできます。
それではiOSアプリケーションプロジェクトにKiwiを導入しましょう。本稿では、CocoaPodsを使ってKiwiをiOSアプリケーションプロジェクトに導入したいと思います。
まず始めに、CocoaPodsをインストールしましょう。CocoaPodsはXcodeプロジェクトでOSS(オープンソースソフトウェア)を管理するためのツールです。詳細は「iOSライブラリ管理の神ツール『CocoaPods』のインストールと使い方」で解説されていますので、こちらを参照してください。
CocoaPodsをインストールするには、ターミナルを開き下記のコマンドを実行します。
$ sudo gem install cocoapods [!] If this is your first time install of CocoaPods, or if you are upgrading, first run: $ pod setup Successfully installed xcodeproj-0.0.2 Successfully installed cocoapods-0.3.9 2 gems installed
以上でCocoaPodsのインストールは完了です。
次に、テスト対象となるiOSアプリケーションプロジェクトを作成しましょう。Xcodeを起動し、新しいプロジェクトを下記の設定で作成してください。
Application | Single View Application |
---|---|
Project Name | KiwiSample |
Class Prefix | KWS |
Xcode 5で新しいプロジェクトを作成すると、アプリケーション本体のターゲットとテスト用のターゲットの2つのターゲットを自動で作成してくれます。
次にCocoaPodsを使ってKiwiをインストールします。まずはCocoaPodsの初期化を行うため、プロジェクトのルートディレクトリで下記のコマンドを実行します。
pod init
コマンドを実行すると「Podfile」というファイルが作成されます。PodfileはプロジェクトにインストールするOSSを定義する設定ファイルです。次にPodfileを開き、下記のように修正してください。
target "KiwiSample" do end target "KiwiSampleTests" do pod "Kiwi" pod "Kiwi/XCTest" end
Podfileの設定では、テスト用のターゲットである「KiwiSampleTests」にKiwiをインストールするようにしています。こうすることで、アプリケーション本体のプロジェクトにはKiwiはインストールされません。
Podfileの編集が終わったら、下記のコマンドを実行してください。
pod install
処理が完了すると、CocoaPodsでインストールしたOSSを管理するプロジェクト「Pods」と、Xcodeのワークスペースファイル「KiwiSample.xcworkspace」が作成されます。ワークスペースファイルを開くと、KiwiSampleTestsにKiwiがインストールできていることが確認できます。
最後に、確認として簡単なテストケースを書いて実行してみましょう。KiwiSampleTestsプロジェクトに自動で作成された「KiwiSampleTest」クラスがあるので、このクラスを下記のように書き換えてください。
#import "Kiwi.h" SPEC_BEGIN(MathSpec) describe(@"計算のテスト", ^{ it(@"16 + 26 は 42 であるべき", ^{ NSUInteger a = 16; NSUInteger b = 26; [[theValue(a + b) should] equal:theValue(42)]; }); }); SPEC_END
それではテストを実行してみましょう。[Command]+[U]キーを入力するとテストを実行できます。次のように「Test Succeeded」と表示されればテスト成功です。
Copyright © ITmedia, Inc. All Rights Reserved.