Javascript-тестирование
Одной из моих любимых частей в обучении кодированию были автоматизированные тесты. Было невероятно полезно увидеть, содержит ли мой код ошибки, и получить подсказки о том, что может быть причиной этих ошибок.
Теперь, когда я выпустился, я должен написать эти тесты для своих собственных проектов!
Я написал несколько тестов Ruby с помощью Capybara, так что теперь я хотел попробовать свои силы в написании тестов Javascript.
Мокко
В честь «Да пребудет с тобой четвертое число» мое альтернативное название для этого поста — «Да пребудет с тобой мокко». Я обнаружил, что Mocha легко настроить и использовать, и им приятно пользоваться.
Mocha — это среда тестирования Javascript. Он работает для тестирования JS в браузере, а также JS, который выполняется в среде node JS.
Мой первый тест мокко
Я решил написать тест Mocha, который будет выполняться в среде node JS.
Вот код:
// Require the built in 'assertion' library var assert = require('assert');
describe('Compare', function() { describe('Star Wars Quotes', function() { it('should test whether two data types are equivalent ', function() { assert.equal(true, typeof "May the Fourth Be With You" === typeof "Help me Obi Wan Kenobi, you're my only hope") }) }) })
Этот тест проходит успешно, потому что оба операнда являются строками, поэтому функция вернет ожидаемый результат true.
Уроки выучены
Руководство по началу работы на сайте mochajs.org содержит очень простые инструкции о том, как запустить свой первый тест Mocha.
Однако я продолжал получать сообщение об ошибке, связанное с моим файлом package.json, всякий раз, когда я пытался запустить «тест npm». Сообщение об ошибке утверждало, что «такой файл или каталог» не существует. В конце концов я запустил команду «npm init» из каталога проекта. Это создало файл package.json в каталоге моего проекта и устранило проблему.
Ресурсы
Есть много отличных ресурсов для изучения мокко, если вам это интересно. Конечно же, на mochajs.org есть официальная документация.
Также есть более подробный туториал по среде от codeburst.