2012-09-20 4 views
1

Я новичок в тестировании модулей, и я пытаюсь разобраться.Единичное тестирование для iOS

Я создал контроллер вида с 1 кнопкой (получить сумму) и 3 текстовых поля (введите 2 цифры и выведите сумму).

int aNum = [self.firstNumber.text intValue]; 
int bNum = [self.secondNumber.text intValue]; 

sum = aNum + bNum; 
self.total.text = [NSString stringWithFormat:@"%i", sum]; 
[self dismissKeyboard]; 

И мое тестирование кода:

vc = [[TestingViewController alloc] init]; 
vc.firstNumber.text = @"1"; 
vc.secondNumber.text = @"2"; 

[vc getSum:nil]; 

STAssertTrue([vc.total.text isEqualToString:@"3"], @"total should be 3"); 

Испытание не удалось, потому что я пытался работать с элементами пользовательского интерфейса.

Мои вопросы: возможно ли протестировать элементы UI следующим образом? Как я могу написать тест для достижения этого?

Спасибо, ребята!

ответ

0

Вы должны загрузить СИБ, который делается путем доступа мнение (см iOS' view lifecycle):

vc = [[TestingViewController alloc] init]; 
// vc.firstNumber is nil right now, because the view isn't loaded 
[vc view]; 
// vc.firstNumber now exists 
vc.firstNumber.text = @"1"; 
vc.secondNumber.text = @"2"; 

[vc getSum:nil]; 

STAssertTrue([vc.total.text isEqualToString:@"3"], @"total should be 3"); 

В качестве альтернативы, если представление является частью иерархии UIWindow, вам не нужно делать это (т.е. - сквозное тестирование)

2

Да, тестирование элемента пользовательского интерфейса в модульных тестах, безусловно, возможно.

методы для этого и более (в том числе и тестирования кода, который опирается на сети) рассматривается в Test-Driven IOS развития (Библиотека разработчика) Грэм Ли является большим ресурсом: http://www.amazon.com/Test-Driven-iOS-Development-Developers-Library/dp/0321774183

Может быть, что вид ISN не загружается. У меня была та же проблема, когда я начал с модульного тестирования на iOS. Попробуйте вызвать [vc loadView]; после запуска viewcontroller.

vc = [[TestingViewController alloc] init]; 
[vc loadView]; 
0

Вы пытаетесь проверить функцию приложения во время его запуска. Вы понимаете разницу между модульными тестами и испытаниями приложений? Вы читали и слушали documentation on application tests? Вы работаете на устройстве?

Вот полезный учебник: http://cocoawithlove.com/2009/12/sample-iphone-application-with-complete.html

0

протестировать интерфейс, вы можете использовать Javascript и работает в инструменты.

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