QUnit
This article relies largely or entirely on a single source. (February 2015) |
Initial release | 8 May 2008 |
---|---|
Written in | JavaScript |
Type | Test automation framework |
License | MIT |
Website | qunitjs |
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.[1]
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:[2]
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:[3]
<syntaxhighlight lang="javascript"> 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
}); </syntaxhighlight>
See also
Lua error in mw.title.lua at line 346: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
References
- ^ 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.
- ^ "Assert methods". QUnit API Documentation. Retrieved 2018-02-14.
- ^ "Cookbook: Example test". QUnit API Documentation. Retrieved 2014-06-02.
External links
- Pages with script errors
- Short description with empty Wikidata description
- Articles needing additional references from February 2015
- All articles needing additional references
- Articles lacking reliable references from February 2015
- All articles lacking reliable references
- JavaScript programming tools
- Unit testing frameworks
- Free software programmed in JavaScript
- Software using the MIT license