QUnit est un framework de test unitaire JavaScript puissant et simple, utilisé par des projets majeurs comme jQuery et Ember.js.
Structure de la suite de tests et hooks
QUnit.module('Math operations', (hooks) => {
hooks.beforeEach(() => {
// Setup before each test
});
hooks.afterEach(() => {
// Teardown after each test
});
QUnit.test('adds two numbers', (assert) => {
assert.equal(1 + 1, 2, '1 + 1 should equal 2');
assert.strictEqual(2 + 2, 4, 'strictly equals 4');
});
});
Répertoire des assertions
| Assertion | Description |
|---|---|
assert.ok(state, [message]) |
Asserts value is truthy |
assert.notOk(state, [message]) |
Asserts value is falsy |
assert.equal(actual, expected) |
Non-strict comparison (==) |
assert.strictEqual(actual, expected) |
Strict comparison (===) |
assert.deepEqual(actual, expected) |
Deep recursive equality on objects/arrays |
assert.throws(fn, [expected]) |
Asserts a function throws an error |
Tests asynchrones (Async Tests)
// Modern Promise / Async Await
QUnit.test('fetches user profile', async (assert) => {
const profile = await fetchProfile(10);
assert.equal(profile.name, 'Alice');
});
// Callback Done Handler
QUnit.test('timer test', (assert) => {
const done = assert.async();
setTimeout(() => {
assert.ok(true, 'Timer completed');
done();
}, 100);
});