version added: 1.22

pushResult( data: { result, actual, expected, message } )

Report the result of a custom assertion.

name description
data.result (boolean) Result of the assertion
data.actual Expression being tested
data.expected Known comparison value
data.message (string) A short description of the assertion

Some test suites may need to express an expectation that is not defined by any of QUnit’s built-in assertions. This need may be met by encapsulating the expectation in a JavaScript function which returns a Boolean value representing the result; this value can then be passed into QUnit’s ok assertion.

A more readable solution would involve defining a custom assertion. If the expectation function invokes pushResult, QUnit will be notified of the result and report it accordingly.


Define a custom mod2 assertion that tests if the provided numbers are equivalent in modulo 2.

QUnit.assert.mod2 = function( value, expected, message ) {
    var actual = value % 2;
    this.pushResult( {
        result: actual === expected,
        actual: actual,
        expected: expected,
        message: message
    } );

QUnit.test( "mod2", function( assert ) {
    assert.expect( 2 );

    assert.mod2( 2, 0, "2 % 2 == 0" );
    assert.mod2( 3, 1, "3 % 2 == 1" );