0

私は iOS 開発が初めてで、自分のコードの単体テストを作成しようとしています。インスタンス変数にアクセスする必要があります。これを行う唯一の方法は、カテゴリを作成し、getter メソッドを記述してから、それをテスト ファイルにインポートすることですか?

ここに私の.mファイルがあります

//imports
@implementation viewController{
    NSArray* a;
    int b;
    //other variables
}

//methods

ここにテストファイルがあります

#import "ViewController_Tests.h"
#import "ViewController.h"

@implementation ViewController_Tests{
  ViewController *controller;
}

- (void)setUp {
  [super setUp];
  controller = [[ViewController alloc] initWithNibName:nil bundle:nil];
}

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

- (void)test1 {
  NSArray* a;
  //I want to access the variables here!

} 

@end
4

1 に答える 1

1

使用できる 2 つのソリューションを確認できます。

1: UISpec フレームワークを使用して、View Controller の機能をテストします。たとえば、「View Controller に X 個のエントリを持つテーブルビューがあることをアサート」(これは回帰テストです) し、完全な GUI を備えたシミュレーターで実行します。

2: #ifdef UNIT_TESTS などのプリコンパイラ フラグを使用して、メンバー変数へのアクセスを開くか、アクセサ メソッドを追加します。ビルド設定を使用して、他のプリプロセッサ フラグで UNIT_TESTS を定義します。したがって、単体テストでのみコンパイルされます。

于 2013-08-01T03:36:05.993 に答える