2013-08-01 2 views
0

저는 iOS 개발에 익숙하며 코드 작성을위한 단위 테스트를 작성하려고합니다. 인스턴스 변수에 액세스해야합니다. 범주를 만들고, getter 메서드를 작성한 다음이를 내 테스트 파일로 가져 오는 유일한 방법은이 방법입니까?iOS 단위 테스트 인스턴스 변수

1 : 사용 UISpec 프레임 워크 기능을 테스트하기 위해 여기

다음은 사용할 수있는 나는 두 가지 솔루션을 볼 수 있습니다 테스트 파일

#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 
+0

자세한 내용을 입력 해주세요. 인스턴스 변수가 속한 클래스는 앱 위임자입니까? –

+0

그들은 내가 만든 사용자 정의 클래스의 인스턴스 변수입니다. .m 파일에서 @implementation 블록 내에서 액세스하려는 인스턴스 변수를 선언했습니다. – user1802143

+0

단위 테스트 내에서 해당 클래스의 인스턴스를 만들 수 있습니까? –

답변

1

가 내하는 .m 파일

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

//methods 

입니다 뷰 컨트롤러의 예, "보기 컨트롤러가 X 수의 항목이있는 테이블 뷰가 있음을 주장하십시오."(회귀 테스트입니다) 전체 GUI로 시뮬레이터에서 실행됩니다.

2 : #ifdef UNIT_TESTS와 같은 프리 컴파일러 플래그를 사용하여 다른 선행 처리기 플래그에서 UNIT_TESTS를 정의하는 빌드 설정을 사용하여 멤버 변수에 대한 액세스를 열거 나 접근 자 메서드를 추가 할 수 있으므로 단위 테스트에서만 컴파일됩니다.