Тестування на треку Objective-C

Дізнаймося, як тестувати вправи з Objective-C на Exercism


Exercism завантажить лише файл тестів. Заголовний і вихідний файли, повʼязані з вправою, нам доведеться створити вручну. Також потрібно згенерувати файл проєкту Xcode з файлом тестів, заголовним файлом (.h) і вихідним файлом (.m). Або ж можна скористатися утилітою для запуску тестів, описаною нижче.

Створення проєкту в Xcode

  • Запустіть Xcode і створіть новий проєкт.
  • Виберіть OS X > Application, а потім Command Line Tool.
  • Натисніть Next і дайте проєкту назву, бажано ExerciseName.
  • Натисніть Next і збережіть проєкт у каталозі вправ Exercism.
  • Коли проєкт створено, натисніть Editor > Add Target.
  • Виберіть OS X > Test, а потім OS X Unit Testing Bundle.
  • Назвіть ціль ExerciseName Tests.
  • На лівій панелі (відомій як навігатор) відкрийте Project navigator, розгорніть теку ExerciseName Tests і відкрийте файл ExerciseName_Tests.m.
  • Замініть його вміст на файл тестів, отриманий з Exercism.
  • У цьому файлі замініть усі входження «test_suite» на «ExerciseName_Tests».
  • Перейдіть до бібліотеки шаблонів файлів у правій панелі (або скористайтеся CTRL+OPTION+CMD+1) і перетягніть шаблон Cocoa Class у теку ExerciseName_Tests у Project navigator.
  • Назвіть його ExerciseName і виберіть ExerciseName Tests як ціль.
  • Тепер у каталозі ExerciseName_Tests буде два нові файли: ExerciseName.h і ExerciseName.m.
  • Натисніть на проєкт у Project navigator.
  • Натисніть ExerciseName Tests у списку цілей.
  • Виберіть Build Phases у навігації редактора.
  • Переконайтеся, що обидва файли .m є у списку джерел для компіляції.
  • Скористайтеся CMD+5, щоб перейти до Test navigator.
  • Клацніть правою кнопкою миші на бандлі ExerciseName Tests і натисніть Enable ExerciseName_Tests.
  • Запустіть тести, натиснувши на трикутник, спрямований праворуч, який зʼявляється при наведенні курсора на бандл у Test navigator, або скористайтеся CMD+U.

Тести запускатимуться через Xcode.

Примітка: Якщо зʼявиться помилка «No visible @interface for ExerciseName declares the selector ExerciseSelector», це означає, що кроки виконано правильно, але в заголовному/вихідному файлі ще нічого не написано. Після оголошення методу у файлі .h і його визначення у файлі .m тести почнуть показувати корисніші помилки, які підкажуть шлях до завершення вправи. Докладнішу інформацію можна знайти в посібнику з класів Objective-C.

Засіб запуску тестів

Альтернатива ручному створенню файлу проєкту - скористатися утилітою для запуску тестів, написаною на Ruby, objc, яка створить файл проєкту з файлом тестів, заголовним файлом і вихідним файлом.

$ gem install objc

Запустіть тести так:

$ objc -x ExerciseName

(Зверніть увагу на прапорець -x/--xcodebuild, який указує використовувати xcodebuild замість xctool. Останній не працює з останніми версіями Xcode.)

Утиліта objc використовує назву вправи, щоб знайти файл тестів ExerciseNameTest.m, заголовний файл ExerciseName.h і вихідний файл ExerciseName.m. Ці файли вставляються в тимчасовий проєкт Xcode, після чого xcodebuild запускає тести для проєкту.

Хоча objc дає змогу взагалі не відкривати Xcode для виконання цих вправ, повідомлення про помилки й відгук у командному рядку не такі зрозумілі, як в інтерфейсі Xcode.