iOSのロジックテスト その2

前回「iOSのロジックテストをはじめる」の続きです。

XCode7, XCTestを使っています。

今回は、Privateメソッドをテストしてみました。
(Privateのテストついてはさまざまな議論があると思いますが、今回はやり方のみ記録しています。)

Privateメソッドのテスト

  1. テスト対象のオブジェクトにTestingカテゴリを追加します。
  2. テストしたいPrivateメソッドを定義します。
  3. テストケースで呼び出します。
#import <XCTest/XCTest.h>
#import "Sample.h"

// テスト対象のオブジェクト
@interface Sample (Testing)
- (void)privateMethodInSample; // テストしたいPrivateメソッドを書く
@end

// テストケース
@interface SampleTests : XCTestCase

@end

@implementation SampleTests

- (void)setUp {
    [super setUp];
}

- (void)tearDown {
    [super tearDown];
}

- (void)testSamplePrivateMethod {
    Sample *target = [[Sample alloc] init];
    [target privateMethodInSample]; // 呼べます
    ...
}

これだけでした。
想像以上にお手軽・・!

個人的には、Privateでもユニットテストを書きたい時があるので、テストしやすいのはうれしいです。