iUnitTest
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Objective-C, Xcode);
*目次 [#b77a5860]
#contents
*参考情報 [#c0bff3e2]
-[[iUnitTest - リンゴの水やり?(はてな):http://d.hatena.n...
-[[[iPhone][Develop][Test] iUnitTestを使ってみた。 - Ni c...
*基本 [#i098b51f]
-標準のSenTestingKitが使いにくいので(デバッガ使えないし)...
*インストール [#rb22da9b]
**ダウンロード [#x58ef51f]
http://github.com/katsuyoshi/iunittest からダウンロード
git clone http://github.com/katsuyoshi/iunittest.git
自分用
git clone git@github.com:src256/iunittest.git
**本体のインストール [#g05cbb48]
ダウンロードしたフォルダに移動しsetup実行
sudo ./setup
**オープンコードのインストール [#r56c7f7c]
-シミュレータでエラーになった行をXcodeで表示してくれるope...
-tools/opencodeに移動。
cd tools/opencode
-opencode.xcodeprojをXcodeで開きビルド(Releaseが良い?)
-バイナリを/usr/local/binにコピー
sudo cp build/Release/opencode /usr/local/bin
-installスクリプトを実行。ログイン時に自動起動する設定に...
./install
-ログアウト&ログイン。
*サンプルプロジェクト作成 [#q760a6bd]
-チュートリアル通りに実行できなかった。
-UINavigationBarBasedTestのテンプレートがなくなっているの...
**ターゲットの作成 [#k53f986a]
-Navigationベースで新規プロジェクトを作成。名前は"Prefect...
-RootViewController.hを修正。
#pre{{
@interface RootViewController : UITableViewController {
NSArray* dataSource;
}
}}
-RootViewController.mを修正。
#pre{{
- (void)viewDidLoad {
[super viewDidLoad];
dataSource = [[NSArray alloc] initWithObjects:
[NSArray arrayWithObject:@"Hokkaido"],
[NSArray arrayWithObjects:@"Aomori", @"Iwate", @"Ak...
nil];
}
- (void)dealloc {
[dataSource release];
[super dealloc];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)t...
return dataSource.count;
}
}}
**テストプロジェクトの作成 [#f90b0e85]
-ファイル→新規プロジェクト→User Templates →Application→iU...
-とりあえず一回実行して失敗することを確認。
-TargetClassに"Prefectures"プロジェクトのRootViewControll...
-Testsクラスを右クリックして、追加→新規ファイルで、UITabl...
-RootViewController.mを編集。デフォルトのテストを削除し以...
#pre{{
- (NSString *)viewControllerName
{
return @"RootViewController";
}
- (BOOL)hasNavigationController
{
return YES;
}
- (void)testNumberOfSectionsInTableView
{
// ASSERT_FAIL(@"not implemented");
ASSERT_EQUAL_INT(2, [self.tableViewController numberOfS...
}
}}
-実行して成功すればOK。
*Tips [#ad859bf1]
**ASSERTマクロの使い分け [#x76ea0d1]
[[[iPhone][Develop][Test] iUnitTestを使ってみた。 - Ni ch...
|ASSERT(value)|真の場合OK|
|ASSERT_FAIL(m)|常に失敗|
|ASSERT_SAME(_expected, _value)|==演算子で比較|
|ASSERT_NOT_SAME(_expected, _value)|==演算子で比較|
|ASSERT_EQUAL(_expected, _value)|isEqualメソッドで比較|
|ASSERT_NOT_EQUAL(_expected, _value)|isEqualメソッドで比較|
|ASSERT_EQUAL_INT(_expected, _value)|int型特化|
|ASSERT_NOT_EQUAL_INT(_expected, _value)|int型特化|
|ASSERT_EQUAL_FLOAT(_expected, _value)|float型特化|
|ASSERT_NOT_EQUAL_FLOAT(_expected, _value)|float型特化|
|ASSERT_EQUAL_FLOAT_DELTA(_expected, _value, _delta)|floa...
|ASSERT_EQUAL_DOUBLE(_expected, _value)|double型特化|
|ASSERT_NOT_EQUAL_DOUBLE(_expected, _value)|double型特化|
|ASSERT_EQUAL_DOUBLE_DELTA(_expected, _value, _delta)|dou...
|ASSERT_NIL(_value)|nilかどうか|
|ASSERT_NOT_NIL(_value)|nilかどうか|
|ASSERT_EQUAL_POINT(_expected, _value)|CGPoint型特化|
|ASSERT_EQUAL_SIZE(_expected, _value)|CGSize型特化|
|ASSERT_EQUAL_RECT(_expected, _value)|CGRect型特化|
|ASSERT_RAISE(expr)|例外指定|
|ASSERT_NOTHING_RAISED(expr)|例外指定|
**特定クラス・メソッドのみ実行 [#ocf217e6]
[[iUnitTestでやった事 - リンゴの水やり?(はてな):http://d...
#pre{{
// Uncomment it, if you want to test this class except ot...
//#define TESTS_ALWAYS
#ifdef TESTS_ALWAYS
- (void)testThisClassAlways { ASSERT_FAIL(@"fail always")...
+ (BOOL)forceTestsAnyway { return YES; }
#endif
}}
終了行:
&tag(Objective-C, Xcode);
*目次 [#b77a5860]
#contents
*参考情報 [#c0bff3e2]
-[[iUnitTest - リンゴの水やり?(はてな):http://d.hatena.n...
-[[[iPhone][Develop][Test] iUnitTestを使ってみた。 - Ni c...
*基本 [#i098b51f]
-標準のSenTestingKitが使いにくいので(デバッガ使えないし)...
*インストール [#rb22da9b]
**ダウンロード [#x58ef51f]
http://github.com/katsuyoshi/iunittest からダウンロード
git clone http://github.com/katsuyoshi/iunittest.git
自分用
git clone git@github.com:src256/iunittest.git
**本体のインストール [#g05cbb48]
ダウンロードしたフォルダに移動しsetup実行
sudo ./setup
**オープンコードのインストール [#r56c7f7c]
-シミュレータでエラーになった行をXcodeで表示してくれるope...
-tools/opencodeに移動。
cd tools/opencode
-opencode.xcodeprojをXcodeで開きビルド(Releaseが良い?)
-バイナリを/usr/local/binにコピー
sudo cp build/Release/opencode /usr/local/bin
-installスクリプトを実行。ログイン時に自動起動する設定に...
./install
-ログアウト&ログイン。
*サンプルプロジェクト作成 [#q760a6bd]
-チュートリアル通りに実行できなかった。
-UINavigationBarBasedTestのテンプレートがなくなっているの...
**ターゲットの作成 [#k53f986a]
-Navigationベースで新規プロジェクトを作成。名前は"Prefect...
-RootViewController.hを修正。
#pre{{
@interface RootViewController : UITableViewController {
NSArray* dataSource;
}
}}
-RootViewController.mを修正。
#pre{{
- (void)viewDidLoad {
[super viewDidLoad];
dataSource = [[NSArray alloc] initWithObjects:
[NSArray arrayWithObject:@"Hokkaido"],
[NSArray arrayWithObjects:@"Aomori", @"Iwate", @"Ak...
nil];
}
- (void)dealloc {
[dataSource release];
[super dealloc];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)t...
return dataSource.count;
}
}}
**テストプロジェクトの作成 [#f90b0e85]
-ファイル→新規プロジェクト→User Templates →Application→iU...
-とりあえず一回実行して失敗することを確認。
-TargetClassに"Prefectures"プロジェクトのRootViewControll...
-Testsクラスを右クリックして、追加→新規ファイルで、UITabl...
-RootViewController.mを編集。デフォルトのテストを削除し以...
#pre{{
- (NSString *)viewControllerName
{
return @"RootViewController";
}
- (BOOL)hasNavigationController
{
return YES;
}
- (void)testNumberOfSectionsInTableView
{
// ASSERT_FAIL(@"not implemented");
ASSERT_EQUAL_INT(2, [self.tableViewController numberOfS...
}
}}
-実行して成功すればOK。
*Tips [#ad859bf1]
**ASSERTマクロの使い分け [#x76ea0d1]
[[[iPhone][Develop][Test] iUnitTestを使ってみた。 - Ni ch...
|ASSERT(value)|真の場合OK|
|ASSERT_FAIL(m)|常に失敗|
|ASSERT_SAME(_expected, _value)|==演算子で比較|
|ASSERT_NOT_SAME(_expected, _value)|==演算子で比較|
|ASSERT_EQUAL(_expected, _value)|isEqualメソッドで比較|
|ASSERT_NOT_EQUAL(_expected, _value)|isEqualメソッドで比較|
|ASSERT_EQUAL_INT(_expected, _value)|int型特化|
|ASSERT_NOT_EQUAL_INT(_expected, _value)|int型特化|
|ASSERT_EQUAL_FLOAT(_expected, _value)|float型特化|
|ASSERT_NOT_EQUAL_FLOAT(_expected, _value)|float型特化|
|ASSERT_EQUAL_FLOAT_DELTA(_expected, _value, _delta)|floa...
|ASSERT_EQUAL_DOUBLE(_expected, _value)|double型特化|
|ASSERT_NOT_EQUAL_DOUBLE(_expected, _value)|double型特化|
|ASSERT_EQUAL_DOUBLE_DELTA(_expected, _value, _delta)|dou...
|ASSERT_NIL(_value)|nilかどうか|
|ASSERT_NOT_NIL(_value)|nilかどうか|
|ASSERT_EQUAL_POINT(_expected, _value)|CGPoint型特化|
|ASSERT_EQUAL_SIZE(_expected, _value)|CGSize型特化|
|ASSERT_EQUAL_RECT(_expected, _value)|CGRect型特化|
|ASSERT_RAISE(expr)|例外指定|
|ASSERT_NOTHING_RAISED(expr)|例外指定|
**特定クラス・メソッドのみ実行 [#ocf217e6]
[[iUnitTestでやった事 - リンゴの水やり?(はてな):http://d...
#pre{{
// Uncomment it, if you want to test this class except ot...
//#define TESTS_ALWAYS
#ifdef TESTS_ALWAYS
- (void)testThisClassAlways { ASSERT_FAIL(@"fail always")...
+ (BOOL)forceTestsAnyway { return YES; }
#endif
}}
ページ名: