Какие рамки существуют для модульного тестирования кода Objective-C? Я хотел бы рамки, которая хорошо интегрируется с Apple Xcode.
Какие рамки существуют для модульного тестирования кода Objective-C? Я хотел бы рамки, которая хорошо интегрируется с Apple Xcode.
Ответы:
Xcode включает в себя XCTest, который аналогичен OCUnit , инфраструктуре модульного тестирования Objective-C, и полностью поддерживает запуск модульных тестов на основе XCTest в рамках процесса сборки вашего проекта. Поддержка модульного тестирования XCode описана в Обзоре XCode: Использование модульных тестов .
В Xcode 2 дня назад я написал серию постов в блоге о том, как выполнять некоторые общие задачи с модульным тестированием Xcode:
Несмотря на использование OCUnit, а не XCTest, концепции в основном одинаковы.
Наконец, я также написал несколько постов о том, как писать тесты для пользовательских интерфейсов Какао; структура Какао делает его относительно простым, поскольку в большинстве случаев вам не нужно крутить цикл событий или что-то подобное.
Это позволяет выполнять разработку через тестирование не только для кода на уровне модели, но и для кода на уровне контроллера и даже на уровне представления.
Проверьте GHUnit Габриэлем Хэндфордом:
«Целями GHUnit являются:
Запускает модульные тесты в XCode, позволяя вам полностью использовать XCode Debugger. Простой графический интерфейс, чтобы помочь вам визуализировать ваши тесты. Показать следы стека. Быть устанавливаемым как структура (для приложений Какао) с простой (или нет) целевой установкой; или легко упаковать в свой проект iPhone. "
Я начал использовать тестовый набор инструментов Google для iPhone, и он отлично работает для меня.
Проверьте OCUnit . Сеть разработчиков Apple имеет отличное представление .
Обратите внимание, что проект Google Toolbox for Mac (GTM) просто расширяет / дополняет инфраструктуру Apple SenTestingKit (которая сама основана на OCUnit). Как говорится на сайте проекта:
GTM имеет несколько улучшений стандартного SenTestingKit, позволяющего вам выполнять модульное тестирование пользовательского интерфейса, автоматическое модульное тестирование привязки, отслеживание журналов и модульное тестирование на iPhone, а также инструменты для статического и динамического тестирования вашего кода.
Обратите внимание на следующий комментарий о тестировании пользовательского интерфейса:
GTM имеет обширную поддержку модульных тестов пользовательского интерфейса. Он поддерживает тестирование изображений и / или внутреннего состояния практически всех стандартных объектов пользовательского интерфейса Какао / UIKit, а также облегчает расширение этой поддержки для ваших собственных объектов пользовательского интерфейса.
См. Их страницу « Проверка кода и модульное тестирование » для получения инструкций по его использованию.
Я пришел к выводу, что GHUnit является самой продвинутой средой тестирования Objective-C. Я сделал сводку тестирующих фреймворков в своем блоге. Он является наиболее гибким с точки зрения развертывания (iphone, simulator или mac os native) и возможностей утверждения. Поскольку он основан на GTM, он наследует все преимущества GTM по сравнению с SenTestingKit, но также добавляет гораздо больше. Еще один бонус заключается в том, что он поддерживается очень активно.
Я приложил усилия для интеграции OCMock в GHUnit, он прекрасно работает! Вы можете получить код на GitHub .
Я понимаю, что это старый вопрос, но если вы предпочитаете тестирование в стиле BDD (rspec, Jasmine и т. Д.), А не тестирование в стиле xUnit (Test :: Unit, JSUnit, JUnit и т. Д.), То вы можете рассмотреть возможность проверки Cedar. , Cedar переносит тестирование в стиле BDD в Objective-C, теперь, когда язык поддерживает замыкания.
Мы с удовольствием используем Cedar для наших iOS-проектов в Pivotal Labs и активно работаем над их улучшением. Любые отзывы или предложения приветствуются на cedar-discuss@googlegroups.com
Я также рекомендовал бы использовать инструменты покрытия, чтобы увидеть, какая часть кода покрыта модульными тестами, а какая нет. Базовое покрытие кода линии и ветви может быть сгенерировано с помощью инструмента GCOV . Если вы хотите создавать хорошие отчеты о покрытии HTML, есть LCOV и ZCOV, которые делают именно это.
Я рекомендую gh-unit, он имеет приятный графический интерфейс для результатов тестирования.
Поддержка модульного тестирования в комплекте в Xcode (для его установки простой) в сочетании с ocrunner (для некоторого автотеста / Growl благость) в настоящее время моя любимая установка Obj-C модульное тестирование.
вот их много
Sen: te (создатель инфраструктуры тестирования, включенной в Xcode) объясняет, как использовать OCUnit с проектом iPhone: simple-iphone-ipad-unit-test .
Мэтт Галлахер из «Какао с любовью» написал очень хорошую статью о юнит-тестировании.
Я бы посоветовал взглянуть на Kiwi, среду тестирования BDD с открытым исходным кодом для iOS: Kiwi
Проверьте WIKI проекта, чтобы начать или получить книгу Даниэля Стейнберга "Test Driving iOS Development с Kiwi" test- Driving-IOS-Development
Я использую SimpleUnitTest, работает с библиотеками iPhone и iPad.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
Он поставляется с шаблоном модульного теста Xcode, чтобы легко добавить класс модульного теста. Обертывания GTM.
Вы можете буквально поместить его в активный проект и начать добавлять модульные тесты в течение 3 минут (или меньше).
Specta - это современная инфраструктура TDD (разработка через тестирование) / BDD (разработка через поведение), которая работает поверх XCTest. Он поддерживает модульное тестирование для проектов iOS и Mac OS X.