QUnit,断言不行?

时间:2013-08-01 12:57:58

标签: qunit

很抱歉,如果这很明显,但在QUnit中是否有notOK或等效函数,如果我们想断言方法返回false?

我无法在documentation中看到否定OK的方法。

我试过了:

!ok...

但这没效果。

5 个答案:

答案 0 :(得分:7)

您可以使用:ok(!method_expected_to_be_false)

答案 1 :(得分:2)

根据文件:

  

QUnit中最基本的断言,ok()只需要一个参数。如果   参数求值为true,断言通过;否则,它   失败。

在方法返回true的情况下,您可以通过编写一个计算结果为false的表达式来验证方法是否返回false值,反之亦然。执行此操作的最简单表达式是NOT运算符,它在JavaScript中通过!

表示
test( "Test method returns false ", function() {
  ok( method() == false, "Method returned false" );
  // or using a the negation operator
  ok( !method(), "Method returned false" );
});

答案 2 :(得分:1)

qunit 1.18开始,有一个专用函数:

assert.notOk(valueToBeTested);

答案 3 :(得分:0)

如果这是你真正想要的,你可以用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);
    },
});

答案 4 :(得分:-1)

更好的方法是使用:

notOk(<something>);

因为它比陈述更具表现力:

ok(!<something>);