1. Обзор средств для тестирования JavaScript-кода:
QUnit, Jasmine, ZombieJS, PhantomJS, SinonJS и др.
Middle-developer
Чипига Сергей
Казань, Барс-Груп, 2013
7. Mocha
Возможности и особенности:
• запуск тестов из браузера;
• тестирование асинхронных запросов на примитивном уровне;
• генерация отчетов покрытия тестами;
• предоставление javascript API для запуска тестов;
• поддержка таймаутов для асинхронных тестов;
• подсветка медленных тестов
• определение утечек глобальных переменных
• возможность использовать любую библиотеку утверждений
• хуки before, after, after each, before each
8. ChaiJS
официальный сайт: http://chaijs.com/
ChaiJS - это BDD / TDD библиотека утверждений для nodejs и браузера, которая
может быть легко использована в паре с любым фреймворком тестирования
JavaScript.
assert
assert.typeOf(foo, 'string', 'foo is a string');
assert.equal(foo, 'bar', 'foo equal `bar`');
assert.lengthOf(foo, 3, 'foo`s value has a length of 3');
assert.lengthOf(beverages.tea, 3, 'beverages has 3 types of tea');
expect
expect(foo).to.be.a('string');
expect(foo).to.equal('bar');
expect(foo).to.have.length(3);
expect(beverages).to.have.property('tea').with.length(3);
should
foo.should.be.a('string');
foo.should.equal('bar');
foo.should.have.length(3);
beverages.should.have.property('tea').with.length(3)
11. PhantomJS
официальный сайт: http://phantomjs.org/
https://twitter.com/phantomjs
PhantomJS - это возможности WebKit из консоли управлять JavaScript с поддержкой
различных стандартов и технологий: DOM, CSS, JSON, Canvas и SVG.
После запуска:
phantomjs loadspeed.js http://www.google.com
результат:
Loading http://www.google.com
Page title is Google
Loading time 719 msec
12. PhantomJS
Возможности:
• Headless web testing
• Page automation
• Screen capture
• Network monitoring
• Multiplatform
• Fast and native implementation
• Pure headless (no X11) on Linux
• Easy to install
13. ZombieJS
официальный сайт: http://zombie.labnotes.org/
ZombieJS - легковесный фреймворк для тестирования client-side Javascript-кода.
Имитирует поведение браузера. Умеет интегрироваться с различного рода
средствами тестирования JavaScript: QUnit, Jasmine, Mocha
14. ZombieJS
Поддерживает методы для быстрого написания тестов:
browser.authenticate().basic("me", "secret")
browser.visit(url, options, callback)
browser.text(selector, context?)
browser.query(selector, context?)
browser.back(callback)
browser.clickLink(selector, callback)
browser.fill(field, value, callback)
browser.pressButton(selector, callback)
Официальная документация: http://zombie.labnotes.org/zombie.pdf