En En

Тестирование


Тестирование — основа фреймворка Ember и его цикла разработки.

Давайте представим, что вы пишите приложение Ember, которое будет служить блогом. Это приложение, скорее всего, будет включать такие модели, как user и post. Также в нем будут взаимодействия вроде регистрации и создания поста. Наконец, предположим, что вы хотели бы иметь доступные автоматизированные тесты для приложения.

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

Приемочные тесты

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

Для приведенного выше сценария можно написать такие приемочные тесты:

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

Модульные тесты

Модульные тесты используются, чтобы испытать изолированные части функциональности или «модули». Их можно написать в отношении любой изолированной логики приложения.

Среди специфических примеров модульных тестов можно отметить:

  • Атрибут fullname (полное имя) вычисляется как совокупность его first (имени) и last (фамилии).
  • Сериализатор правильно преобразует полезную нагрузку запроса блога в объект модели поста блога.
  • Даты блога правильно форматируются.

Интеграционные тесты

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

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

Примеры интеграционных тестов:

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

Среды тестирования

QUnit — исходная среда тестирования для этого руководства. Но через сторонние дополнения поддерживаются и другие.

Как запускать тесты

Запускайте тесты в командной строке через ember test. Вы можете повторно запускать тесты при каждом изменении файла с помощью ember test --server.

Когда вы запускаете локальный сервер (с помощью ember server), тесты можно выполнять, если пройти в браузере по адресу локального сервера. По умолчанию, это http://localhost:4200/tests.

Эти команды запускают тесты с помощью Testem, чтобы упростить проверку в нескольких браузерах. Вы можете сконфигурировать Testem с помощью файла testem.json в корне приложения.


Комментарии (0)

    Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.