QUnit, assert not OK?

后端 未结 5 1097
南方客
南方客 2021-01-20 04:26

Sorry if this is obvious, but is there a notOK or equivalent function in QUnit, if we want to assert that a method returns false?

I can\'t see a way to negate OK in

相关标签:
5条回答
  • 2021-01-20 04:52

    According to the documentation :

    The most basic assertion in QUnit, ok() requires just one argument. If the argument evaluates to true, the assertion passes; otherwise, it fails.

    You can verify that a method return a false value by writing an expression which evaluates to a true value in the case the method returns false, and vice versa. The easiest expression to do this is the NOT operator, which in JavaScript is expressed through !

    test( "Test method returns false ", function() {
      ok( method() == false, "Method returned false" );
      // or using a the negation operator
      ok( !method(), "Method returned false" );
    });
    
    0 讨论(0)
  • 2021-01-20 04:52

    starting from qunit 1.18 there is a dedicated function:

    assert.notOk(valueToBeTested);
    
    0 讨论(0)
  • You could use: ok(!method_expected_to_be_false)

    0 讨论(0)
  • 2021-01-20 04:55

    If this is something you really, really want, you can add it with QUnit.extend():

    QUnit.extend(QUnit.assert, {
        notOk: function (result, message) {
            message = message || (!result ? "okay" : "failed, expected argument to be falsey, was: " +
            QUnit.dump.parse(result));
            QUnit.push(!result, result, false, message);
        },
    });
    
    0 讨论(0)
  • 2021-01-20 05:04

    The better approach would be to use:

    notOk(<something>);
    

    as it will be more expressive than stating:

    ok(!<something>);
    
    0 讨论(0)
提交回复
热议问题