QUnit

QUnit
Initial release8 May 2008 (2008-05-08)
Stable release
2.26.0[1] Edit this on Wikidata / 1 June 2026; 3 days ago (1 June 2026)
Written inJavaScript
TypeTest automation framework
LicenseMIT
Websitequnitjs.com
Repository

QUnit is a JavaScript framework for unit testing. Originally developed for testing jQuery, jQuery UI and jQuery Mobile, it is a generic framework for testing any JavaScript code. It supports client-side environments in web browsers, and server-side (e.g. Node.js).

QUnit's assertion methods follow the CommonJS unit testing specification, which itself was influenced to some degree by QUnit.

History

John Resig originally developed QUnit as part of jQuery. In 2008 it was extracted from the jQuery unit test code to form its project and became known as "QUnit". This allowed others to start using it for writing their unit tests. While the initial version of QUnit used jQuery for interaction with the DOM, a rewrite in 2009 made QUnit completely standalone.

A 2017 analysis of npm and GitHub code repositories showed QUnit was the third most prevalent framework, with half as much usage as the most popular framework, Mocha.[2]

Usage and examples

  • QUnit.module(string) - Defines a module, a grouping of one or more tests.
  • QUnit.test(string, function) - Defines a test.

QUnit uses a set of assertion method to provide semantic meaning in unit tests:[3]

  • assert.ok(boolean, string) - Asserts that the provided value casts to boolean true.
  • assert.equal(value1, value2, message) - Compares two values, using the double-equal operator.
  • assert.deepEqual(value1, value2, message) - Compares two values based on their content, not just their identity.
  • assert.strictEqual(value1, value2, message) - Strictly compares two values, using the triple-equal operator.

A basic example would be as follows:[4]

QUnit.test('a basic test example', function (assert) {
  var obj = {};

  assert.ok(true, 'Boolean true');       // passes
  assert.ok(1, 'Number one');            // passes
  assert.ok(false, 'Boolean false');     // fails

  obj.start = 'Hello';
  obj.end = 'Ciao';
  assert.equal(obj.start, 'Hello', 'Opening greet'); // passes
  assert.equal(obj.end, 'Goodbye', 'Closing greet'); // fails
});

See also

References

  1. ^ "Release 2.26.0". 1 June 2026. Retrieved 1 June 2026.
  2. ^ Fard, Amin Milani; Mesbah, Ali (2017). JavaScript: The (Un)covered Parts (PDF). 10th IEEE International Conference on Software Testing, Verification and Validation (ICST 2017). Tokyo: IEEE.
  3. ^ "Assert methods". QUnit API Documentation. Retrieved 2018-02-14.
  4. ^ "Cookbook: Example test". QUnit API Documentation. Retrieved 2014-06-02.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.