Как на уровне, и практикуйте некоторые основы, я прохожу через программу сертификации «API и Microvervices» в FreeCodecamp Отказ Я закончил учебные пособия и теперь наращиваю проекты, необходимые для завершения сертификации, используя рекомендующую платформу для разделения этих проектов Глюк Отказ
И если это было недостаточно сложно, я решил заставить себя изучать тестовое развитие (TDD) с Ava. Как я их кодировал. И поскольку лучший способ для меня к навыкам цемента – объяснить их, я его блогися. Это будет шесть сообщений в течение нескольких недель, начиная с того, как настроить всю среду тестирования Glitck и AVA.
Это слово салат. Что такое TDD, AVA и Glitch?
Знай это уже? Пропустить объяснения …
Что такое TDD?
С помощью тестируемой разработки (TDD) вы пишете тесты, чтобы подтвердить, что ваше программное обеспечение работает так, как он должен до Вы пишете свое программное обеспечение. Затем вы пишете код, чтобы пройти тесты.
Тест: результат Myфункция ()
должно быть правдой. Код: const myfunction = () => {Вернитесь; }
Тестовые пропуски!
Это звучит нечетное, но планирование тестов создает эффективную дорожную карту для записи вашего кода. Сборник испытаний также помогает обеспечить качество вашего кода со временем.
Он был принят все больше и больше компаний, и если вы хотите представить ряд проектов с открытым исходным кодом, вам не только нужно представить свой код, но тесты, которые идут с ним.
Что такое ава?
Ava это тестовый бегун для node.js Приложения JavaScript. Он имеет структуру, которая помогает руководству, как вы пишете свои тесты, то он запускает их и отчеты о результатах.
Это то, что мы будем стремиться к этому посту.
Что такое глюк?
Глюк это услуга, в которой вы строите и делитесь веб-сайтами и веб-приложениями. Вы получаете небольшой контейнерный веб-сервер, веб-интерфейс для управления и редактирования файлов и URL для деления полученной веб-добры. Вместо того, чтобы настроить и запустить сервер для ваших проектов для FreeCodeCamp. , вы можете построить и запустить их на Сбой .
Начало работы с AVA на глюк
Этот пост будет охватывать конфигурацию и базовый тест. Я пойду через создание начальных Timestamp Microvery Проект в будущем пост.
Шаг 1: клон шаблон Microvice Timestamp на Glitch
Запустите проект на глюк.
Клонированный проект будет рабочим веб-приложением Node.js, который обслуживает домашнюю страницу с деталями проекта в HTTPS://[Name Project] .glitch.me и простой API, который возвращает приветствие при приложении/API/Привет в конце URL.
Шаг 2: Добавить тестирование ресурсов для package.json.
Обновите package.json
файл, чтобы добавить необходимые изменения конфигурации. Добавить Ava и сверхтест до зависимости
Секция и тестовая команда для Скрипты
раздел. Две секции должны выглядеть так.
"scripts": { "start": "node index.js", "test": "node\_modules/.bin/ava tests/\*\*/\*.test.js --verbose"}, "dependencies": { "express": "^4.12.4", "cors": "^2.8.0", "ava": "^1.4.1", "supertest": "^4.0.2"},
3: Создайте свой первый тест
Мы немного изменяем ради краткости и проверить API «Hello». Но для того, чтобы имитировать процесс, мы сначала напишите тест, посмотрите, что он не удается, затем напишите/редактируйте код до тех пор, пока он не пройдет.
Нажмите кнопку «+ новый файл» и введите Тесты/index.test.js
Отказ Это создаст ваш Тесты
Папка и index.test.js
файл внутри этого. Добавьте следующий код в пустой файл.
import test from 'ava'; const request = require('supertest'); const app = require('./../server.js'); test('hello API', async t => { const response = await request(app) .get('/api/hello'); t.is(response.body.greeting, 'hello API'); })
Нажмите на Инструменты
кнопка и откройте консоль. Он откроется на другой вкладке. Беги NPM тест
Отказ
Тест не удался с «отклоненным обещанием, возвращаемым тестом. «Это потому, что приложение нуждается в двух вещах.
4: редактировать Server.js
Выньте последний блок кода в Server.js
Отказ
// listen for requests :) var listener = app.listen(process.env.PORT, function () { console.log('Your app is listening on port ' + listener.address().port); });
Замените его линией, которая экспортирует приложение в виде модуля.
module.exports = app;
Нам нужно сделать это, чтобы нанести супертестную библиотеку, которую мы добавили, может создать приложение в изоляции и помочь AVA запустить тест на него, а не запустить его на основе живого общественного приложения. Это также позволяет создавать чистую копию приложения по мере необходимости вместо того, чтобы запустить тесты против все более мраченного состояния приложения в качестве прогресса испытаний.
4: Добавить index.js
Нажмите кнопку «+ новый файл» и добавьте файл с именем index.js
Отказ Добавить к нему код, который вы удалены из server.js.
const app = require('./server.js'); // listen for requests :) var listener = app.listen(process.env.PORT, function () { console.log('Your app is listening on port ' + listener.address().port); });
Это на самом деле, так что приложение будет работать для ваших посетителей Итак, вы можете вручную проверить его в браузере. Модульное, что он позволяет Supertest Instanticate и предоставить его AVA для тестирования, но приложение для общественного облицовки должно также привести к созданию модуля.
5: Тест снова
Вернитесь к консоли. Беги NPM тест
Отказ
И теперь у вас есть успешный тест.
Вы готовы создать свой первый проект Microvice FreeCodecamp, используя TDD, AVA и GLICK. И это мой следующий пост. Следуй за мной в Twitter Чтобы не отставать от последних постов.
Оригинал: “https://dev.to/letmypeoplecode/learning-javascript-tdd-with-ava-glitch-and-freecodecamp-2njo”