Каков наилучший способ модульного тестирования кода Objective-C?

StackOverflow https://stackoverflow.com/questions/33207

Вопрос

Какие существуют фреймворки для модульного тестирования кода Objective-C?Мне бы хотелось, чтобы фреймворк хорошо интегрировался с Apple Xcode.

Это было полезно?

Решение

Xcode включает в себя XCTest, который похож на ОКУнит, платформа модульного тестирования Objective-C и имеет полную поддержку для запуска модульных тестов на основе XCTest как части процесса сборки вашего проекта.Поддержка модульного тестирования Xcode описана в Обзор Xcode:Использование модульных тестов.

Еще в Xcode 2 days я написал серию постов в блоге о том, как выполнять некоторые распространенные задачи с помощью модульного тестирования Xcode:

Несмотря на использование OCUnit, а не Xcstest, концепции в основном те же.

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

Это позволяет выполнять разработку на основе тестирования не только для вашего кода уровня модели, но и для кода уровня контроллера и даже для кода уровня представления.

Другие советы

Проверьте Гунит автор : Габриэль Хэндфорд:

"Целями GHUnit являются:

Запускает модульные тесты в XCode, позволяя полностью использовать XCode Отладчик.Простой графический интерфейс, который поможет вам визуализировать ваши тесты.Показывать трассировки стека .Быть устанавливаемым как фреймворк (для приложений Cocoa) с простой (или нет) целевой настройкой;или легко упаковывается в ваш проект для iPhone. "

Я начал использовать тестовую установку Google Toolbox для iPhone, и у меня отлично получилось.

google-toolbox-для-Mac

Проверьте ОКУнит.Сеть разработчиков Apple имеет отличное введение.

Обратите внимание, что проект Google Toolbox для Mac (GTM) просто расширяет / дополняет платформу Apple SenTestingKit (которая сама основана на OCUnit).Как говорится на сайте проекта:

GTM имеет несколько улучшений к стандартному SenTestingKit, позволяющему выполнять модульное тестирование пользовательского интерфейса, автоматическую привязку модульное тестирование, отслеживание журналов и модульное тестирование на iPhone, а также инструменты для статического и динамического тестирования тестирование вашего кода.

Обратите внимание на следующий комментарий о тестировании пользовательского интерфейса:

ГТМ имеет обширную поддержку для пользователей модульные тесты интерфейса.Он поддерживает тестирование как изображений, так и / или внутреннего состояния почти всех стандартных объектов пользовательского интерфейса Cocoa / UIKit и упрощает расширение этой поддержки на ваши собственные объекты пользовательского интерфейса.

Увидеть их "Верификация кода и модульное тестирование" страница с инструкциями по его использованию.

Я пришел к выводу, что GHUnit - это самый продвинутый фреймворк тестирования для Objective-C.Я проделал большую работу. обзор о тестировании фреймворков в моем блоге.Он наиболее гибкий с точки зрения развертывания (iphone, simulator или mac os native) и возможностей assert.Поскольку он основан на GTM, он наследует все преимущества GTM по сравнению с SenTestingKit, но также добавляет намного больше.Еще одним бонусом является то, что он поддерживается очень активно.

Я предпринял усилия по интеграции Окмок в GHUnit это работает великолепно!.Вы можете получить код на гитхаб.

Я понимаю, что это старый вопрос, но если вы предпочитаете тестирование в стиле BDD (rspec, Jasmine и т.д.) тестированию в стиле xUnit (Test::Unit, JsUnit, JUnit и т.д.), То вы можете рассмотреть возможность проверки Кедр.Cedar переносит тестирование в стиле BDD на Objective-C, теперь, когда язык поддерживает замыкания.

Мы с удовольствием используем Cedar для наших проектов iOS по адресу Ключевые Лаборатории, и мы активно работаем над его улучшением.Любые отзывы или предложения приветствуются по адресу cedar-discuss@googlegroups.com

Я бы также рекомендовал использовать инструменты покрытия, чтобы увидеть, какая часть кода покрыта модульными тестами, а какая нет.Базовое покрытие кода строки и ответвления может быть сгенерировано с помощью GCOV инструмент.Если вы хотите создавать хорошие отчеты о покрытии HTML, есть LCOV и ZCOV которые делают именно это.

Я рекомендую gh-unit, у него приятный графический интерфейс для отображения результатов тестирования.

http://github.com/gabriel/gh-unit/tree/master

Тот Самый Поддержка модульного тестирования в комплекте с xcode (для его простой настройки) в сочетании с окраннер (для некоторого удобства автотестирования / Growl) в настоящее время является моей любимой установкой модульного тестирования Obj-C.

вот их целая куча

List_of_unit_testing_frameworks в Objective-C

Сен: те (создатель платформы тестирования, входящей в комплект поставки Xcode) объясняет, как использовать OCUnit в проекте iPhone: простой-iphone-ipad-модульный тест.

Мэтт Галлахер из Cocoa with Love имеет очень хорошая статья о модульном тестировании.

Я бы посоветовал присмотреться к Kiwi, платформе тестирования BDD с открытым исходным кодом для iOS:Киви

Ознакомьтесь с WIKI проекта, чтобы начать, или получите книгу Дэниела Стейнберга "Тест-драйв разработки iOS с Kiwi". тест-драйв-ios-разработка

Я использую SimpleUnitTest, который работает с библиотеками iPhone и iPad.

http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html

Он поставляется с шаблоном Xcode для модульного тестирования, позволяющим легко добавлять класс модульного тестирования.Обертывает GTM.

Вы можете буквально поместить его в активный проект и начать добавлять модульные тесты в течение 3 минут (или меньше).

Спектр это современный фреймворк TDD (Test Driven Development) / BDD (Behavior Driven Development), который работает поверх XCTest.Он поддерживает модульное тестирование для проектов iOS и Mac OS X.

Я надеюсь, что вы сможете использовать 'SenTestKit', с помощью которого вы сможете протестировать каждый метод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top