Еще одно задание JavaScript. Есть много интерактивных ресурсов JavaScript для начинающих, но большинство из них находятся в Интернете и не охватывают современный рабочий процесс программирования. Есть несколько отличных учебных ресурсов на GitHub (https://github.com/rmurphey/js-assessment, https://github.com/mrdavidlaing/javascript-koans, https://github.com/vasanthk/js-tcts), но они не так смоделируют процесс программирования. Таким образом, мотивация этого проекта - показать процесс TDD в дикой природе начинающим. Испытания на пост реализуются различными способами, чтобы почувствовать разницу и получить опыт, каким образом хорошо, что плохо, а что -то уродливое.
Другая идея состоит в том, чтобы подготовить задание для охвата всех стандартных функций JavaScript, к бурению и мастерингу. Некоторые задачи практичны, но некоторые задачи довольно синтетические.
И последняя идея состоит в том, чтобы заинтересовать слушателей работать с использованием модульного теста и чувствовать себя некомфортно при программировании без тестов.
git clone https://github.com/<your-account>/js-assignments.git из командной строки для загрузки репо.'it-shark-pro' с именем вашей учетной записи). git add README.md
git commit -m " Update the links "
git push origin masternpm install из вашей папки репозитория для загрузки требуемых модулей. Все зависимые модули будут расположены в папке node_modules .npm test чтобы запустить все тесты. Вы можете запустить отдельный файл, передавая его в качестве аргумента npm test ./test/01-strings-tests.js .node_modules - app dependences restored by npm install command, you can delete this folder and restore later again.
task - folder with tasks modules, it's your main folder.
test - folder with tests modules to verify the tasks completion.Теперь вы готовы реализовать задания. Модули задач расположены в папке задач . Каждый модуль состоит из нескольких задач для указанной темы. Каждая задача обычно является обычной функцией:
/**
* Returns the result of concatenation of two strings.
*
* @param {string} value1
* @param {string} value2
* @return {string}
*
* @example
* 'aa', 'bb' => 'aabb'
* 'aa','' => 'aa'
* '', 'bb' => 'bb'
*/
function concatenateStrings ( value1 , value2 ) {
throw new Error ( 'Not implemented' ) ;
}Решите эту задачу, используя следующие шаги TDD:
throw new Error ( 'Not implemented' ) ;и запустите модульные тесты снова. Найдите один тест не сбои (красный). Теперь пора это исправить!
Для отладки тестов вы можете использовать инспектор узлов . Чтобы установить его, просто запустите npm install -g node-inspector в вашем терминале. Затем следуйте следующим шагам:
debugger; к первой строке вашей задачи.npm run test-debug ./test/01-strings-tests.js .node-inspector и копируйте ссылку с вывода.debugger; от вашей задачи.Существует более простой способ отладки для начинающих с бесплатным кодом Visual Studio:
launch.json по умолчанию.jsonlaunch.json {
"version": "0.2.0",
"configurations": [
{
...
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
...
"args": ["./test/01-strings-tests.js"],
...
},
...
]
}
F5 , чтобы запустить отладку.launch.json хранится в папке проекта .vscode . Не стесняйтесь вносить свой вклад в этот проект. Приглашаются новые задачи и ката.
Чтобы исправить Linting execute:
npm run lint -- --fix