15
Обзор средств для тестирования JavaScript-кода: QUnit, Jasmine, ZombieJS, PhantomJS, SinonJS и др. Middle-developer Чипига Сергей Казань, Барс-Груп, 2013

обзор средств для тестирования Java script

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: обзор средств для тестирования Java script

Обзор средств для тестирования JavaScript-кода:

QUnit, Jasmine, ZombieJS, PhantomJS, SinonJS и др.

Middle-developer

Чипига Сергей

Казань, Барс-Груп, 2013

Page 2: обзор средств для тестирования Java script

QUnitофициальный сайт: http://qunitjs.com/

QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты

для кода на javascript.

Page 3: обзор средств для тестирования Java script

QUnitА так выглядят результаты тестирования в браузере:

Page 4: обзор средств для тестирования Java script

JasmineJS

официальный сайт: http://pivotal.github.io/jasmine/

Jasmine это BDD фреймворк для тестирования JavaScript кода, позаимствовавший

многие черты из RSpec.

Page 5: обзор средств для тестирования Java script

JasmineJSТак выглядят тесты в браузере:

Page 6: обзор средств для тестирования Java script

Mochaофициальный сайт: http://visionmedia.github.io/mocha/

Mocha - многофункциональный фреймворк для тестирования JavaScript,

работающий как с nodejs, так и с браузером, делает асинхронное тестирование

простым и веселым.

Page 7: обзор средств для тестирования Java script

MochaВозможности и особенности:

• запуск тестов из браузера;

• тестирование асинхронных запросов на примитивном уровне;

• генерация отчетов покрытия тестами;

• предоставление javascript API для запуска тестов;

• поддержка таймаутов для асинхронных тестов;

• подсветка медленных тестов

• определение утечек глобальных переменных

• возможность использовать любую библиотеку утверждений

• хуки before, after, after each, before each

Page 8: обзор средств для тестирования Java script

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

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

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

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

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

ZombieJSофициальный сайт: http://zombie.labnotes.org/

ZombieJS - легковесный фреймворк для тестирования client-side Javascript-кода.

Имитирует поведение браузера. Умеет интегрироваться с различного рода

средствами тестирования JavaScript: QUnit, Jasmine, Mocha

Page 14: обзор средств для тестирования Java script

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

Thank you for your attendance!