Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
Discover a powerful and suitable
Javascript Automatic Testing Toolkit
by Daniel Yang
Purpose
Find out the best Javascript testing library for us.
QUnit vs Jasmine
- support in brower & Node.js
- testing of DOM manipulation
- TDD or BDD
BDD or TDD
in Jasemine
expect(5).toEqual(5);
expect(5).not.toEqual(5);
in Qunit
strictEqual(5, 5);
notStrictEqual(5, 5);
But we need something more...
- how to test in different browers
- how to test with a AMD loader
- and how to automatic testing
JsTestDriver + Jasmine
This is the Taobao's solutions in used, but it has some bugs which make people get fighting mad.
Pro
- testing in different browers
- automatic testing
- BDD style script
Con
- asynchronous support is not good, and you shall mock up the data when using AJAX.
- couldn't support all Jasmine method
- and it built in Java(not JS)
Is there any libaray
can solve these problems?
Easy to deploy
use npm to install & manager
npm install -g buster
npm install buster-amd
Browser Testing
Buster.JS can automate browsers, JsTestDriver style.
buster server
Buster.JS also has a static browser runner that runs tests by opening a web page in a browser. This is similar to QUnit, Mocha, etc.
buster static
AJAX Testing
using Sinon.JS to mock out the entire XHR stack in a browser, so we can test AJAX easily.
Asynchronous tests
To tag a test as async, have the test function take one argument, done.
The done argument is a function. Call it to tell Buster.JS that the asynchronous test has finished running.
Buster.JS is still beta, so it has some rough edges.
But I think this solutions will satisfy our needs.
Thanks for your watching!