QUnit은 jQuery, jQuery UI 및 Ember.js 등 대규모 프로젝트에서 널리 활용되는 강력하고 직관적인 JavaScript 단위 테스트 프레임워크입니다.
테스트 스위트 구조 및 라이프사이클 훅
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');
});
});
단언문 레퍼런스 (Assertion Reference)
| 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 |
비동기 테스트 (Asynchronous 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);
});