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

cocos2dプロジェクトにテストを追加する

iOS cocos2d

cocos2dのテンプレートから生成したばかりのプロジェクトのTargetにはテストが追加されていない。Xcode4でこれを追加する方法のメモ。

アプリケーション名はMyAppとします。

  • Add Targetsで"Cocoa Touch Unit Testing Bundle"を選択
    • ターゲット名は通常、「(アプリケーション名)Tests」のようにつけるのでMyAppTests
  • 生成したターゲットを選択し、Build Settingsを設定
    • Bundle Loaderを $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp
    • Test Hostを $(BUNDLE_LOADER)
  • Build Phasesを設定
    • Target Dependenciesにアプリケーションを追加

必要であれば元からある方のターゲットのスキームを編集し、TestでMyAppTestsターゲットを実行するようにする。

Application TestとLogic Testのターゲットを別々に作っておいて、アプリケーションのTestスキームの方にApplication Testを結びつけ、Logic Testは単独で実行できるようにしておいた方がよいのかもしれない。この辺りは今後の検討課題。

作り立てのcocos2dプロジェクトにはHello Worldというラベルが表示されるだけのレイヤーがあるが、このラベルの文字列を追加してみる。まあ、あんまり意味のあるテストではない。CCActionやユーザー入力のテストをどうやって書くかだなぁ。

#import "MyAppTests.h"


@implementation SecondAppTests

- (void)setUp
{
    [super setUp];
    
    // Set-up code here.
}

- (void)tearDown
{
    // Tear-down code here.
    
    [super tearDown];
}

- (void)testInit
{
    HelloWorldLayer* layer = [[[HelloWorldLayer alloc] init] autorelease];
    CCLabelTTF *node = [[layer children] objectAtIndex:0];
    STAssertTrue([[node string] isEqualToString:@"Hello World"], @"label text is 'Hello World'");
}

@end