QUnit.test.if()
version added: 2.22.0.
Description
QUnit.test.if( name, condition, callback )
Add a test that only runs if a condition is true.
parameter | description |
---|---|
name (string) |
Title of unit being tested |
condition (string) |
Expression to decide if the test should run |
callback (function) |
Function that performs the test |
If the condition is true, this is equivalent to calling QUnit.test()
.
If the conditional is false, this is equivalent to calling QUnit.test.skip()
, and test will not run. Instead, it will be listed in the results as a “skipped” test.
As a codebase becomes bigger, you may need to conditionally skip an entire group of tests. You can use QUnit.module.if()
to recursively skip all tests in a module based on a given requirement.
Examples
Skip a test
QUnit.module('MyApp');
// Skip if executed without a DOM
QUnit.test.if('render', typeof document !== 'undefined', function (assert) {
assert.strictEqual(MyApp.render(), '<p>Hello world!</p>');
});
This is equivalent to:
if (typeof document !== 'undefined') {
QUnit.test('render', function (assert) {
assert.strictEqual(MyApp.render(), '<p>Hello world!</p>');
});
} else {
QUnit.test.skip('render');
}
Conditional module
QUnit.module.if('MyApp', typeof document !== 'undefined');
QUnit.test('render', function (assert) {
assert.strictEqual(MyApp.render(), '<p>Hello world!</p>');
});
Legacy idom
Prior to QUnit 2.22, the following shortcuts were sometimes used. This may be replaced by QUnit.test.if()
.
(typeof document !== 'undefined' ? QUnit.test : QUnit.skip)('example', function (assert) {
assert.true(true);
});
QUnit[typeof document !== 'undefined' ? 'test' : 'skip']('example', function (assert) {
assert.strue(true);
});