Как я могу создать сквозные тесты для приложений Mac (Какао)?

Я много читал о разработке через тестирование и решил, что хочу попробовать это в небольшом проекте. Для справки: в настоящее время я читаю «Растущее объектно-ориентированное программное обеспечение, управляемое тестами».

Я понимаю, как проводить модульное тестирование моего приложения, а также как модульное тестирование определенных частей пользовательского интерфейса, но мне сложно настроить сквозные тесты. Например, проверка того, что определенный путь через все мое приложение дает правильный результат (это мое основное понимание сквозного тестирования).

Нет необходимости моделировать события щелчка, но необходимо иметь какое-то соединение с пользовательским интерфейсом.

Прав ли я, думая, что для этого мне нужна комбинация «логических» тестов (тест без запуска приложения), «приложений» (тест с запуском приложения) и асинхронной функциональности чего-то вроде GHUnit?

РЕДАКТИРОВАТЬ:

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

  1. Запустите приложение.
  2. Вызов функции входа в систему с учетными данными тестового пользователя. (Примечание: не обязательно автоматизация пользовательского интерфейса).
  3. Убедитесь, что метка в окне гласит: «Вход в систему ...».
  4. После успешной проверки пользователя убедитесь, что на этикетке написано «Добро пожаловать, Адам!».

KIF звучит так, как будто он может работать, поскольку в нем есть шаги для проверки изменений в элементах пользовательского интерфейса, и похоже, что существует также ветка Mac OSX. Я уверен, что мог бы также написать небольшой класс, который постоянно опрашивает пользовательский интерфейс на предмет изменений, которые я ожидаю, и время ожидания истекает через определенное время, но мне интересно, правильный ли это способ сделать это.

Однако, возможно, я пытаюсь взять то, что я читаю в «Росте объектно-ориентированного программного обеспечения, управляемое тестами», и пытаюсь применить это слишком буквально к Какао.

Другое ОБНОВЛЕНИЕ:

Итак, я до сих пор читал советы, проверял различные места, на которые есть ссылки, и начал что-то реализовывать, все еще ссылаясь на книгу. Я думаю, что я действительно пытаюсь разобраться в части разработки , управляемой тестированием . Что больше всего выделялось в этой книге, так это то, что они сначала описали то, что они хотели, с точки зрения пользователей, с помощью приемочных тестов.

Я понимаю, что надежное модульное тестирование будет необходимо, как только я начну писать методы, но я очень хотел сначала написать несколько приемочных тестов высокого уровня, используя некоторые элементы пользовательского интерфейса. Я начал писать свой собственный класс «драйвер» приложения, используя некоторые методы, аналогичные идеям GHAsyncTestCase, чтобы помочь мне в этом. Звучит ли это правильно / полезно / необходимо?

Я действительно ценю все полученные на данный момент комментарии, и они определенно помогли мне понять, что я пытаюсь сделать и какие существуют различные области тестирования. Я скоро закончу этот вопрос, так как он становится довольно большим, поэтому любые последние советы приветствуются!

15
задан Adam 5 November 2011 в 14:24
поделиться