2013-08-01 2 views
0

Я новичок в разработке iOS, и я пытаюсь написать модульные тесты для моего кода. Мне нужно получить доступ к переменным экземпляра. Это единственный способ сделать это, чтобы создать категорию, написать методы getter и затем импортировать ее в тестовый файл?переменные экземпляра единицы измерения iOS

Вот мой .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 
+0

Просьба предоставить более подробную информацию. К какому классу принадлежат переменные экземпляра, ваш делегат приложения? –

+0

Это переменные экземпляра в пользовательском классе, который я создал. В файле .m в блоке @implementation я объявил переменные экземпляра, к которым я хотел бы получить доступ. – user1802143

+0

Можете ли вы создать экземпляр этого класса внутри модульного теста? –

ответ

1

Я вижу два решения, которые вы можете использовать:

1: основы использования UISpec для тестирования функции контроллера вида, например «утверждать, что контроллер просмотра имеет табличное представление с X числом записей» (это регрессионный тест) и работает в симуляторе с полным графическим интерфейсом.

2: Использовать флаги предварительного компилятора, такие как #ifdef UNIT_TESTS, либо открыть доступ к переменным-членам, либо добавить методы доступа, используя настройки сборки, определите UNIT_TESTS в других флагах препроцессора, таким образом, они компилируются только в модульных тестах.

Смежные вопросы