Настройте среду тестирования до того, как она станет неуправляемой.

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

Предпосылки

Это продолжение предыдущей статьи. Вы можете начать с Самое простое приложение Node.js или включить его в свой собственный проект.

Установить инструменты тестирования

Мы будем использовать фреймворк Mocha для тестирования вместе с библиотекой утверждений SuperTest, а функцию Expect мы позаимствуем у Jest.

Установите эти пакеты в качестве зависимостей разработки, потому что мы не хотим использовать их при развертывании приложения.

npm i mocha expect supertest --save-dev

Установить Нодемон

Мы можем использовать nodemon для автоматического перезапуска сервера всякий раз, когда мы вносим изменения в один из наших файлов. Давайте установим это глобально, чтобы мы могли повторно использовать его в других наших проектах.

npm i -g nodemon

Экспорт приложения

Нам нужно экспортировать «приложение» из файла index.js, чтобы мы могли запускать сервер во время тестирования. Добавьте строку 10 в конец файла.

Настройка тестового файла

Создайте папку с тестами и тестовый файл. Убедитесь, что вы находитесь в каталоге проекта, затем из терминала…

mkdir tests
touch tests/index.test.js

Откройте index.test.js. Здесь нам потребуется супертест и ожидаемое. Нам нужно получить модуль приложения из index.js, чтобы мы могли запустить сервер. Настройте блок описания и оператор it с описанием того, что должен делать тест. В данном случае это довольно просто. Мы просто хотим видеть, что при посещении localhost:3000 мы получаем код состояния 200.

Редактировать скрипты

Теперь нам нужно отредактировать package.json. Нам нужен тестовый скрипт для запуска mocha, строка 8. Мы также можем создать скрипт для использования nodemon, который будет перезапускать тесты всякий раз, когда мы вносим изменения в наши файлы, строка 9. Также не забудьте добавить запятую в конце строка 7, иначе вы получите ошибку.

Запуск тестов

Если вы хотите запустить тесты один раз, введите…

npm run test

Если вы хотите запускать тесты непрерывно…

npm run test-watch

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

[nodemon] 1.18.10
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `npm test`
> [email protected] test /home/user/Desktop/2019mar/simple-node-app
> mocha tests/**.test.js
Server running on port 3000.
  /
    ✓ should respond 200
1 passing (18ms)

Фиксация изменений и развертывание приложения

Вы можете нажать Ctrl+C, чтобы выйти из тестовой среды, тогда мы зафиксируем наши изменения и повторно развернем приложение на Heroku.

Проверить статус проекта…

git status

Добавить новые файлы…

git add .

Подтвердить сообщением…

git commit -m 'Setup testing environment, created test for GET /'

Отправить коммит на GitHub и Heroku

git push && git push heroku master

Вывод

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

"Последний проект"

Гитхаб-репозиторий