QUnit - 斷言的使用



所有斷言都在 Assert 類別中。

此類別提供了一組用於編寫測試的有用斷言方法。只有失敗的斷言才會被記錄。

序號 方法及說明
1

async()

指示 QUnit 等待非同步操作。

2

deepEqual()

深度遞迴比較,適用於基本型別、陣列、物件、正則表示式、日期和函式。

3

equal()

非嚴格比較,大致相當於 JUnit 的 assertEquals。

4

expect()

指定在一個測試中預期執行多少個斷言。

5

notDeepEqual()

反向深度遞迴比較,適用於基本型別、陣列、物件、正則表示式、日期和函式。

6

notEqual()

非嚴格比較,檢查不等式。

7

notOk()

布林檢查,是 ok() 和 CommonJS 的 assert.ok() 的反義,相當於 JUnit 的 assertFalse()。如果第一個引數為假則透過。

8

notPropEqual()

嚴格比較物件的自身屬性,檢查不等式。

9

notStrictEqual()

嚴格比較,檢查不等式。

10

ok()

布林檢查,相當於 CommonJS 的 assert.ok() 和 JUnit 的 assertTrue()。如果第一個引數為真則透過。

11

propEqual()

嚴格比較物件的自身屬性的型別和值。

12

push()

報告自定義斷言的結果。

13

strictEqual()

嚴格比較型別和值。

14

throws()

測試回撥函式是否丟擲異常,並可以選擇性地比較丟擲的錯誤。

讓我們嘗試在一個例子中涵蓋上面提到的大多數方法。

<html>
   <head>
      <meta charset = "utf-8">
      <title>QUnit basic example</title>
      <link rel = "stylesheet" href = "https://code.jquery.com/qunit/qunit-1.22.0.css">
      <script src = "https://code.jquery.com/qunit/qunit-1.22.0.js"></script>
   </head>
   
   <body>
      <div id = "qunit"></div>
      <div id = "qunit-fixture"></div> 
      <script>
         QUnit.test( "TestSuite", function( assert ) {
            //test data
            var str1 = "abc";
            var str2 = "abc";
            var str3 = null;
            var val1 = 5;
            var val2 = 6;
            var expectedArray = ["one", "two", "three"];
            var resultArray =  ["one", "two", "three"];

            //Check that two objects are equal
            assert.equal(str1, str2, "Strings passed are equal.");
			
            //Check that two objects are not equal
            assert.notEqual(str1,str3, "Strings passed are not equal.");

            //Check that a condition is true
            assert.ok(val1 < val2, val1 + " is less than " + val2);
			
            //Check that a condition is false
            assert.notOk(val1 > val2, val2 + " is not less than " + val1);

            //Check whether two arrays are equal to each other.
            assert.deepEqual(expectedArray, resultArray ,"Arrays passed are equal.");
			
            //Check whether two arrays are equal to each other.
            assert.notDeepEqual(expectedArray, ["one", "two"],
               "Arrays passed are not equal.");			
         });
      </script>
   </body>
</html>

驗證輸出

您應該看到以下結果:

廣告
© . All rights reserved.