2016-07-11 2 views
2

Скажем, у меня есть следующая структура приложения:Есть ли способ в EarlGrey для меня, чтобы сбросить приложение автоматически?

[View Controller 1] -> tap on next button 
         [View Controller 2] -> Check for Title 

В EarlGrey, я определил это испытание, выполнив:

[[EarlGrey selectElementWithMatcher:grey_text(@"Next Button")] 
    performAction:grey_tap()] 
[[EarlGrey selectElementWithMatcher:grey_text(@"Screen Title")] 
    assertWithMatcher:grey_sufficientlyVisible()]; 

Но теперь, когда я хочу, чтобы проверить на [View Controller 3], я заметил, что приложение все еще застрял на [View Controller 2]. Есть ли вызов, который мне не хватает, что может позволить мне вернуться на первый экран или сбросить приложение для следующего теста?

ответ

2

Как и в случае любого xctest, приложение не перезапущено и остается в том же состоянии, что и предыдущий тест. Вам потребуется явно сбросить состояние приложения либо в tearDown, либо в setUp тестового примера. Вы можете:

  1. Записывайте взаимодействие пользовательского интерфейса, которое возвращает приложение на главный экран после завершения каждого тестового примера.

  2. Внесите в делегат вашего приложения метод resetApplicationForTesting и вызовите его из метода setUp каждого тестового примера. Если эту логику нужно разделить с несколькими тестовыми примерами, подумайте о создании BaseTestClass, который наследует эти тесты.

В методе нАлАдкА в тесте по:

MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [delegate resetApplicationForTesting]; 

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

  • Нет связанных вопросов^_^