GHUnitをインストールして、XCodeでシンプルなテストケースを実行するまでの手順を整理してみました。このエントリーでは下記までを対象とします。
- CocoaPodのインストールとセットアップ
- GHUnitをXCodeで動作確認するためのサンプルプロジェクト作成
- 簡単なテスト対象クラスの作成
- GHUnitによる簡単なテストクラスの作成
- iPhone Simulatorでの動作確認
GHUnitとは?
公式サイトには下記のように説明されています。
GHUnit is a test framework for Mac OS X and iOS. It can be used standalone or with other testing frameworks like SenTestingKit or GTM.
Features
GHUnitはMacOSXとiOSのテストフレームワークです。スタンドアローンで使うこともできますし、SenTestingKitやGTMのようなテストフレームワークと一緒に使うこともできます。
機能
1.CocoaPodsのインストール
早速インストールします。
筆者の環境はOSX 10.8.4です。Terminalからsudo gem install cocoapodsを実行し、続けてpod setupと入力してください。成功すると下記のようになります。
[plain]
$ sudo gem install cocoapods
$ pod setup
Setting up CocoaPods master repo
Updating a04552b..e3cd593
Fast-forward
ETFramework/1.0.7/ETFramework.podspec | 19 +++++++
ISHTTPOperation/1.1.0/ISHTTPOperation.podspec | 23 +++++++++
.../1.0/KLCircleViewController.podspec | 12 +++++
MSSimpleGauge/0.5/MSSimpleGauge.podspec | 14 ++++++
NUI/0.3.3/NUI.podspec | 16 ++++++
SHSegueBlocks/1.2.0/SHSegueBlocks.podspec | 37 ++++++++++++++
SHUIKitBlocks/1.0.0/SHUIKitBlocks.podspec | 57 +++++++++++++++++++++
SHUIKitBlocks/1.1.0/SHUIKitBlocks.podspec | 58 ++++++++++++++++++++++
8 files changed, 236 insertions(+)
create mode 100644 ETFramework/1.0.7/ETFramework.podspec
create mode 100644 ISHTTPOperation/1.1.0/ISHTTPOperation.podspec
create mode 100644 KLCircleViewController/1.0/KLCircleViewController.podspec
create mode 100644 MSSimpleGauge/0.5/MSSimpleGauge.podspec
create mode 100644 NUI/0.3.3/NUI.podspec
create mode 100644 SHSegueBlocks/1.2.0/SHSegueBlocks.podspec
create mode 100644 SHUIKitBlocks/1.0.0/SHUIKitBlocks.podspec
create mode 100644 SHUIKitBlocks/1.1.0/SHUIKitBlocks.podspec
From https://github.com/CocoaPods/Specs
a04552b..e3cd593 master -> origin/master
CocoaPods 0.23.0.rc1 is available.
Setup completed (read-only access)
[/plain]
以上でCocoaPodのインストールは完了です。
2.XCodeプロジェクトの作成
ここではサンプルとして\"UnitTestSample\"という名前のプロジェクトを作成します。
さらに\'Test\'というターゲットを追加します。
テンプレートは\"Empty Application\"を選択します。
Product Nameはここでは\"Tests\"と入力します。
そしてTerminalアプリから、作成したプロジェクトにcdで移動してPodfileを作成します。
[plain]
$ cd UnitTestSample
$ vim Podfile
[/plain]
Podfileは下記のように編集してください。
[plain]
platform :ios, \'6.0\'
target :Tests do
pod \'GHUnitIOS\', \'~> 0.5.5\'
end
[/plain]
Podfileを編集したら保存して、\'pod installを実行\'
[plain]
$ pod install
Analyzing dependencies
CocoaPods 0.23.0.rc1 is available.
Downloading dependencies
Installing GHUnitIOS (0.5.6)
/Library/Ruby/Gems/1.8/gems/cocoapods-0.22.3/lib/cocoapods/executable.rb:55: warning: Insecure world writable dir /Users/takeshi.kawai/Desktop/iOS in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/cocoapods-0.22.3/lib/cocoapods/executable.rb:55: warning: Insecure world writable dir /Users/takeshi.kawai/Desktop/iOS in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/cocoapods-0.22.3/lib/cocoapods/executable.rb:55: warning: Insecure world writable dir /Users/takeshi.kawai/Desktop/iOS in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/cocoapods-0.22.3/lib/cocoapods/executable.rb:55: warning: Insecure world writable dir /Users/takeshi.kawai/Desktop/iOS in PATH, mode 040777
/Library/Ruby/Gems/1.8/gems/cocoapods-0.22.3/lib/cocoapods/executable.rb:55: warning: Insecure world writable dir /Users/takeshi.kawai/Desktop/iOS in PATH, mode 040777
Generating Pods project
Integrating client project
[!] From now on use UnitTestSample.xcworkspace
.
[/plain]
現在開いているUnitTestSample.xcodeprojを閉じて、UnitTestSample.xcworkspaceを開く
ターゲットを\"Tests\"に変更してBuildしてみる。
NavigationからTests>Supporting Files>main.mを開いて
[plain]
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class
[/plain]
を以下のように変更
[plain]
return UIApplicationMain(argc, argv, nil, @"GHUnitIOSAppDelegate")
[/plain]
Build&RunでSimulatorを下記のような画面が表示されればOKです。
3.テスト対象のクラスを作成
ここからは、実際にテストを行いたいクラスとしてCalcクラスを想定し、簡単なメソッドを1つ定義します。XCodeからCommand+NでNSObjectを継承するObjective-C Classを追加してください。
Calc.h編集
[plain]
import <Foundation/Foundation.h>
@interface Calc : NSObject
-(int)add:(int)a :(int)b;
@end
[/plain]
Calc.mを編集
[plain]
import "Calc.h"
@implementation Calc
-(int)add:(int)a :(int)b{
return a+b;
}
@end
[/plain]
4.テストクラスを作成
先ほど作成したCalcクラスのユニットテストを実装するため、今度はSampleTestCaseクラスを新規追加します。こちらはGHTestCaseクラスを継承するように設定してください。
[plain]
import <GHUnitIOS/GHUnit.h>
import "Calc.h"
@interface SampleTestCase : GHTestCase
@end
@implementation SampleTestCase
-(void)testCalc{
Calc *calc = [[Calc alloc] init];
int ans = [calc add:1 :2];
GHAssertEquals(3, ans, @"1+2");
}
@end
[/plain]
5.テスト実行
それでは、実際にテストを実行してみます。
XCodeのスキームを「Tests」に設定した状態でCommand+Rを押してください。
テストが成功した場合は下記のようになります。
次はテストが失敗した場合の画面です。
ここまでのソースコードをgithubで公開しています。参考にしてください。
Xcode 4 完全攻略 posted with ヨメレバ STUDIO SHIN ソフトバンククリエイティブ 2012-03-29