обзор средств для тестирования java script
DESCRIPTION
TRANSCRIPT
![Page 1: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/1.jpg)
Обзор средств для тестирования JavaScript-кода:
QUnit, Jasmine, ZombieJS, PhantomJS, SinonJS и др.
Middle-developer
Чипига Сергей
Казань, Барс-Груп, 2013
![Page 2: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/2.jpg)
QUnitофициальный сайт: http://qunitjs.com/
QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты
для кода на javascript.
![Page 3: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/3.jpg)
QUnitА так выглядят результаты тестирования в браузере:
![Page 4: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/4.jpg)
JasmineJS
официальный сайт: http://pivotal.github.io/jasmine/
Jasmine это BDD фреймворк для тестирования JavaScript кода, позаимствовавший
многие черты из RSpec.
![Page 5: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/5.jpg)
JasmineJSТак выглядят тесты в браузере:
![Page 6: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/6.jpg)
Mochaофициальный сайт: http://visionmedia.github.io/mocha/
Mocha - многофункциональный фреймворк для тестирования JavaScript,
работающий как с nodejs, так и с браузером, делает асинхронное тестирование
простым и веселым.
![Page 7: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/7.jpg)
MochaВозможности и особенности:
• запуск тестов из браузера;
• тестирование асинхронных запросов на примитивном уровне;
• генерация отчетов покрытия тестами;
• предоставление javascript API для запуска тестов;
• поддержка таймаутов для асинхронных тестов;
• подсветка медленных тестов
• определение утечек глобальных переменных
• возможность использовать любую библиотеку утверждений
• хуки before, after, after each, before each
![Page 8: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/8.jpg)
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)
![Page 9: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/9.jpg)
SinonJSофициальный сайт: http://sinonjs.org/
SinonJS - Standalone test spies, stubs and mocks for JavaScript. No dependencies,
works with any unit testing framework.
![Page 10: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/10.jpg)
Karma
официальный сайт: http://karma-runner.github.io/0.8/index.html
Karma - Spectacular Test Runner for JavaScript
Особенности:
• Test on Real Devices
• Open Source
• Remote Control
• Easy Debugging
• Testing Framework Agnostic
• Continuous Integration
![Page 11: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/11.jpg)
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
![Page 12: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/12.jpg)
PhantomJSВозможности:
• Headless web testing
• Page automation
• Screen capture
• Network monitoring
• Multiplatform
• Fast and native implementation
• Pure headless (no X11) on Linux
• Easy to install
![Page 13: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/13.jpg)
ZombieJSофициальный сайт: http://zombie.labnotes.org/
ZombieJS - легковесный фреймворк для тестирования client-side Javascript-кода.
Имитирует поведение браузера. Умеет интегрироваться с различного рода
средствами тестирования JavaScript: QUnit, Jasmine, Mocha
![Page 14: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/14.jpg)
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
![Page 15: обзор средств для тестирования Java script](https://reader031.vdocuments.site/reader031/viewer/2022020115/546a7dabaf7959842c8b6e07/html5/thumbnails/15.jpg)
Thank you for your attendance!