Які рамки існують для тестового коду Objective-C? Мені б хотілося, щоб рамки, які добре інтегрувались з Apple Xcode.
Які рамки існують для тестового коду Objective-C? Мені б хотілося, щоб рамки, які добре інтегрувались з Apple Xcode.
Відповіді:
Xcode включає в себе XCTest, який схожий на OCUnit , рамку тестування блоку Objective-C і має повну підтримку виконання тестів на основі XCTest на основі модуля як частина процесу складання вашого проекту. Підтримка тестування одиниць Xcode описана в Огляді Xcode: Використання модульних тестів .
Ще за два дні до Xcode я написав низку публікацій із веб-журналів про те, як виконувати деякі поширені завдання з тестуванням блоку Xcode:
Незважаючи на використання OCUnit, а не XCTest, концепції значною мірою однакові.
Нарешті, я також написав кілька публікацій про те, як писати тести для користувальницьких інтерфейсів Cocoa; те, як структуровано какао, робить його відносно простим, тому що вам не доведеться крутити цикл подій або щось подібне в більшості випадків.
Це дає можливість робити тестові розробки не тільки для вашого коду на рівні моделі, але і для вашого контролера і навіть коду рівня перегляду.
Перевірте GHUnit Габріеля Хендфорда:
"Цілями GHUnit є:
Запускає тести одиниць у XCode, дозволяючи повністю використовувати відладчик XCode. Простий графічний інтерфейс, який допоможе вам візуалізувати свої тести. Показати сліди стека. Бути встановленим як рамки (для додатків какао) з простим (або ні) налаштуванням цілі; або легко упакувати у ваш проект iPhone. "
Я почав використовувати випробувальну установку Google для інструментів для iPhone, і для мене це дуже добре спрацювало.
Перевірте OCUnit . Мережа розробників Apple має чудове вступ .
Зауважте, що проект Google Toolbox for Mac (GTM) просто розширює / розширює рамки SenTestingKit Apple (яка сама базується на OCUnit). Як кажуть на сайті проекту:
GTM має декілька вдосконалень до стандартного SenTestingKit, що дозволяє робити тестування модулів інтерфейсу, автоматичне тестування блоку прив'язки, відстеження журналу та тестування блоків на iPhone, а також інструменти для статичного та динамічного тестування вашого коду.
Зверніть увагу на такий коментар щодо тестування інтерфейсу користувача:
GTM має широку підтримку тестів блоку користувальницького інтерфейсу. Він підтримує тестування як зображень, так і / або внутрішнього стану майже всіх стандартних об'єктів інтерфейсу Cocoa / UIKit, і дозволяє вам легко поширити цю підтримку на власні об’єкти інтерфейсу.
Дивіться їх сторінку " Перевірка коду та тестування одиниць ", щоб дізнатися, як його використовувати.
Я дійшов висновку, що GHUnit - це найдосконаліша структура тестування для Objective-C. Я провів обробку тестування рамок у своєму блозі. Це найбільш гнучка з точки зору розгортання (iphone, тренажер або mac os native) та можливостей затвердження. Оскільки він заснований на GTM, він успадковує всі переваги GTM перед SenTestingKit, але також додає набагато більше. Ще одним бонусом є те, що він підтримується дуже активно.
Я доклав зусиль до інтеграції OCMock в GHUnit, це чудово працює! Ви можете отримати код на github .
Я усвідомлюю, що це давнє запитання, але якщо ви віддаєте перевагу тестуванню у стилі BDD (rspec, Жасмін та ін.) Над тестуванням у стилі xUnit (Тест :: Unit, JSUnit, JUnit тощо), то ви можете розглянути можливість перевірки кедра . Cedar приносить тестування в стилі BDD на Objective-C, тепер, коли мова підтримує закриття.
Ми із задоволенням використовуємо Cedar для наших iOS-проектів у Pivotal Labs , і ми активно працюємо над його вдосконаленням. Будь-які відгуки та пропозиції вітаються на адресу cedar-discuss@googlegroups.com
Я також рекомендую використовувати засоби покриття, щоб побачити, яка частина коду покрита одиничними тестами, а які - ні. Покриття базового рядка та гілки можна створити за допомогою інструменту GCOV . Якщо ви хочете генерувати приємні звіти про висвітлення HTML, є LCOV та ZCOV, які роблять саме це.
Я рекомендую gh-unit, він має приємний графічний інтерфейс для результатів тестів.
Підтримка Unit Testing, що постачається в рамках xcode (для її простого налаштування) у поєднанні з okrunner (для деякої користі для автоматичного тестування / Growl), в даний час є моєю улюбленою установкою тестування Obj-C Unit Testing.
тут їх ціла купа
Sen: te (творець тестової рамки, що входить до Xcode) пояснює, як користуватися OCUnit для проекту iPhone: simple-iphone-ipad-unit-test .
Метт Галлахер з какао з любов'ю має дуже хорошу статтю про тестування одиниць.
Я б запропонував заглянути в Kiwi, рамку тестування BDD з відкритим кодом для iOS: Kiwi
Перевірте WIKI проекту, щоб розпочати або отримати книгу Даніеля Штейнберга "Тест-водіння iOS на розробці з ківі" тест-драйвер-ios-development
Я використовую SimpleUnitTest працює з iPhone і iPad libs.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
Він поставляється з одиничним тестовим шаблоном Xcode для легкого додавання одиничного тестового класу. Обгортки GTM.
Ви можете буквально запустити його в активний проект і почати додавати одиничні тести протягом 3 хвилин (або менше).
Specta - це сучасний TDD (Test Driven Development) / BDD (Behavior Driven Development) фреймворк, який працює на вершині XCTest. Він підтримує тестування модулів для проектів iOS та Mac OS X.