Тестируем JavaScript на Zombie.js
Как правило, после написания кода его тестируют. Zombie.js — фреймворк для написания тестов, имитирующий браузер (поддерживается CSS/JS). Его можно использовать для тестирования верстки и JavaScript.
Рассмотрим пример теста, тестирующий положительный сценарий успешной регистрации на каком-нибудь воображаемом сайте. Следует учесть, что код запускается под Node.JS:
const Browser = require('zombie'); // В нашем тесте станем отправлять запросы на адрес http://example.com/signup // но эти запросы будут обслуживаться локально установленным // сервером на порту 3000, имеющим адрес localhost:3000 Browser.localhost('example.com', 3000); // describe описывает сценарий нашего теста, // при этом блоки describe можно вкладывать друг в друга describe('Пользователь заходит на страницу регистрации', function() { // создается объект, имитирующий браузер const browser = new Browser(); // Действие, выполняемое до теста — это переход на необходимую страницу before(function(done) { browser.visit('/signup', done); }); describe('пользователь заполняет форму и отправляет ее', function() { before(function(done) { browser .fill('email', '[email protected]') .fill('password', '123456') .fill('password-confirm', '123456') .pressButton('Зарегистрироваться', done); }); // it описывает конкретное требование, а также код для его проверки it('регистрация должна быть успешной', function() { browser.assert.success(); }); it('пользователь увидит приветственное сообщение', function() { // Уведомление должно быть выведено в элементе с классом notification // (применяется CSS-синтаксис селекторов) browser.assert.text('.notification', 'Вы успешно зарегистрированы'); }); }); });
Для установки Zombie.js вам понадобится Node.js и следующая команда:
$ npm install zombie --save-dev
Подробнее ознакомиться с Zombie.js можно на официальном сайте.