2015-03-10 2 views
0

Я использую KIWI для тестирования своего приложения iOS. Я хотел бы спросить, как проверить, существует ли элемент в UIViewController, однако я объявил элемент внутри файла реализации, а не в файле заголовка.Тестирование iOS: проверка элементов, если они существуют в UIViewController с использованием KIWI

Возможно ли это?

#import "Kiwi.h" 

SPEC_BEGIN(HomeViewController) 
    describe(@"HomeViewController", ^{ 

     context(@"when instantiated", ^{ 
      __block HomeViewController *controller = nil; 

      beforeEach(^{ 
       controller = [[HomeViewController alloc] init]; 
      }); 

      it(@"it should have been instantiated", ^{ 
       [controller shouldNotBeNil]; 
      }); 

      it(@"it should have UITableViewController", ^{ 
       /* 
        WHAT TO DO HERE 
       */ 
      }) 
     }); 
    }); 

SPEC_END 

ответ

0

В принципе, вы хотите проверить, появляется ли на экране определенный элемент пользовательского интерфейса.

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

Во-вторых, вы можете сделать несколько аранжировок, если вы действительно хотите проверить это, например, добавить заголовок HomeViewController+Internal.h, где вы поместите «частный» элемент. Или, если контроллер представления таблицы объявляется как свойство, вы можете попросить сгенерированный поглотитель для свойства (например: [controller usersTableViewController], если имя свойства usersTableViewController)

В-третьих, иметь в виду, что тесты, как это, как правило, затруднить рефакторинг кода приложения, поскольку рефакторинг кода, скорее всего, приведет к рефакторингу затронутых модульных тестов, что может быть не очень забавным и подвержено ошибкам.

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

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