天天看點

Qunit API

QUnit是jQuery支援的一款JavaScript單頁測試架構。簡單易用。可以從QUnit的Github頁面擷取其代碼。QUnit的使用與JUnit類似,相信有JUnit經驗的開發者和測試人員可以很快上手。

開始寫測試用例

  • test( name, expected, test )

    一個正常的測試用例。test裡是測試用例的具體内容。

  • asyncTest( name, expected, test )

    一個異步測試用例。預設的test都是同步的。内容中必須顯示地調用start(),測試才會開始。

  • expect( amount )

    用于測試代碼中,表示在本測試裡期待會執行amount個斷言,大于或少于這個數量,測試都将失敗。

  • module( name, lifecycle )

    定義一個名為name的子產品。在可選參數lifecycle中,可以定義子產品開始和結束的測試内容。具體見文檔。

  • QUnit.init( )

    啟動QUnit測試。如果測試在進行中,則會重新啟動。基本不用。

QUnit支援的斷言

  1. ok( state, message )

    真假斷言,state為true則通過。類似于JUnit的assertTrue。

  2. equal( actual, expected, message )

    相等斷言,actual和expected相等(==)則通過。類似于JUnit的assertEquals。

  3. notEqual( actual, expected, message )

    不等斷言,actual和expected不相等(!=)則通過。類似于JUnit的assertNotEquals。

  4. deepEqual( actual, expected, message )

    遞歸相等斷言,actual和expected全相等(包括其子元素都相等,适用于基本類型,數組和對象)則通過。對于基本類型,相當于strictEqual。

  5. notDeepEqual( actual, expected, message )

    遞歸不相等斷言,actual和expected不全相等(包括其子元素都相等,适用于基本類型,數組和對象)則通過。對于基本類型,相當于notStrictEqual。

  6. strictEqual( actual, expected, message )

    全相等斷言,actual和expected全相等(===)則通過。

  7. notStrictEqual( actual, expected, message )

    不全相等斷言,actual和expected不全相等(===)則通過。

  8. raises( block, expected, message )

    異常斷言,block中抛出異常則通過,expected為可選參數,是所期待抛出異常名的正規表達式。

把QUnit內建到現有工具

QUnit在執行的過程中會調用一系列函數,告知外界運作狀況,大家可以覆寫這些函數,達到內建的目的。

  • QUnit.log({ result, actual, expected, message })

    每當斷言執行結束後會調用此函數。

  • QUnit.testStart({ name })

    每當一個測試執行開始時會調用此函數。

  • QUnit.testDone({ name, failed, passed, total })

    每當一個測試執行結束後會調用此函數。

  • QUnit.moduleStart({ name })

    每當一個子產品執行開始時會調用此函數。

  • QUnit.moduleDone({ name, failed, passed, total })

    每當一個子產品執行結束後會調用此函數。

  • QUnit.begin()

    當QUnit開始時會調用此函數。

  • QUnit.done()

    當QUnit結束後會調用此函數。

在後面的執行個體中,我寫了一些覆寫,列印了執行過程。相信有了這些回調函數的幫助,寫一個進度條出來也不是難事。

QUnit的過濾器

  • noglobals

    如果勾選,那麼如果一個測試中引入了全局變量,則測試會失敗。JavaScript中引入全局變量(window的屬性)是不推薦的行為。

  • notrycatch

    如果勾選,代碼中的try-catch将不會生效,一旦程式中有異常發生,測試即刻終止。

繼續閱讀