Написание тестов приложений для iOS, которые идут вокруг приложения - PullRequest
0 голосов
/ 30 ноября 2011

Я пытаюсь написать некоторые тесты приложений для своего приложения на основе iPhoneUnitTests примеров на сайте Apple dev. В частности, у меня возникают проблемы с «постукиванием» по элементам в приложении, то есть моделированием методов вызова крана, которые заставляют контроллеры представления появляться или исчезать.

Например, у меня есть этот тест:

- (void)testAddMeal
{
  HomeScreenController *hsCtrl = (HomeScreenController*)mainViewController;
  [hsCtrl tableView:hsCtrl.tblView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
  nutritionStrategyController = (NutritionStrategyController*)((UINavigationController*)mainViewController.modalViewController).topViewController;
  [nutritionStrategyController tableView:nutritionStrategyController.tblView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]];
}

Открывается первый UIViewController, выбирающий ячейку таблицы, а затем появляется второй UIViewController, выбирающий ячейку таблицы в новом UIViewController. Проблема в том, что тест не проходит с этой ошибкой:

 Unknown.m:0: error: -[NutritionStrategyTests testAddMeal] : Attempting to begin a modal transition from <UINavigationController: 0x113a2fc0> to <NewMealTrackingController: 0x9353090> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed

Итак, мой вопрос, как мне создать тест для этого?

1 Ответ

0 голосов
/ 30 ноября 2011

Модульные тесты предназначены для тестирования поведения определенных битов кода, классов, модулей и т. Д. Если вы хотите автоматизировать пользовательский ввод, это другой вид теста, вы можете посмотреть на UIAutomation tool , который посвящен этому типу тестирования.

Инструмент автоматизации, управляемый вашими тестовыми сценариями, управляет элементами пользовательского интерфейса вашего приложения, позволяя регистрировать результаты для вашего анализа.Функция автоматизации может имитировать многие пользовательские действия, поддерживаемые устройствами, которые поддерживают многозадачность и работают под управлением iOS 4.0 или более поздней версии.Ваш тестовый скрипт может работать как на устройстве iOS, так и в симуляторе iOS без изменений.

Важным преимуществом инструмента автоматизации является то, что вы можете использовать его с другими инструментами для выполнения сложных тестов, таких как отслеживание утечек памятии выявление причин проблем с производительностью.

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