Как написать тестовые примеры киви для ниже упомянутого IBAction

Я сталкиваюсь с проблемой правильного контрольного примера для нижеупомянутой функции.

-(IBAction) returnToLogin:(UIStoryboardSegue*) segue {
  NSLog(@"kiwi tested");
}

Я пробовал разные способы, но это прошло тест

   it(@"Should unwind segue", ^{
        NSNumber *actionMethod = @([_vc respondsToSelector:@selector(returnToLogin:)]);
        [[actionMethod should] beTrue];
    });

Есть ли у вас какие-либо идеи?

1 ответ

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

Но примите во внимание следующее:

  1. подпись IBAction не правильно, UIStoryboardSegue не может вызвать действие.
  2. Контроллеры немного сложны для тестирования, в основном потому, что они включают тестирование изменений пользовательского интерфейса.
  3. попытаться реорганизовать логику, которую вы хотите проверить в бизнес-классы, и протестировать эти классы;
  4. Apple добавила поддержку тестирования пользовательского интерфейса начиная с Xcode7 и iOS9, так что если вы хотите протестировать пользовательский интерфейс, вы можете использовать это
Другие вопросы по тегам