2013-08-01 43 views
3

對不起,如果這是顯而易見的,但是如果我們想斷言一個方法返回false,那麼QUnit中是否有一個notOK或等價函數?我不能在documentation中看到否定的方法。QUnit,斷言不正確?

我想:

!ok... 

,但沒有奏效。

回答

7

你可以使用:ok(!method_expected_to_be_false)

2

根據文檔:

在QUnit最基本的說法,OK()只需要一個參數。如果 參數評估爲true,則斷言通過;否則,它 失敗。

可以驗證的是,方法通過寫入將計算得到一個值true在該方法返回false的情況下的表達式返回一個假值,並且反之亦然。要做到這一點,最簡單的表達是不是運營商,在JavaScript中通過!

test("Test method returns false ", function() { 
    ok(method() == false, "Method returned false"); 
    // or using a the negation operator 
    ok(!method(), "Method returned false"); 
}); 
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); 
    }, 
}); 
-1

的更好的方法是使用:

notOk(<something>); 

因爲這將是更具表現力比指出:

ok(!<something>); 
0

qunit 1.18開始有一個專用的函數:

assert.notOk(valueToBeTested);