文章出處

首先去Qunit官網下載。

Qunit有一個js腳本文件和一個css我們在頁面中引入它。

<script src="qunit-2.0.1.js"></script>
<link rel="stylesheet" href="qunit-2.0.1.css">

頁面中有兩段必須的標簽。

<div id="qunit"></div>
<div id="qunit-fixture"></div>

不寫上這個,頁面就是空白的了,這兩個標簽用來顯示測試結果以及其他的東西。

 

接下來我們可以新建一個js文件來進行簡單的測試了。

function add(a, b) {
  return a + b;
}

QUnit.test( "add test", function( assert ) {
  assert.ok( add(2,3) === 6, "add IS 5" );
});

結果如下:

看到圈起來的沒

QUnit.test( "add test", function( assert ) {
  assert.ok( add(2,3) === 6, "add IS 5" );
});

QUnit.test表示你要測試一段代碼,第一個也就是我圈起來的那段,只是用來顯示的,第二個參數是一個函數,里面放一個assert參數,這個測試有很多的屬性,在這里我們用到的是ok這個函數可以用來測試一個布爾值,第一個寫你要測試的,如果相等表示通過,否則會報錯,第二個也是用來顯示的。

 

如果是通過的會是這樣的。

如果你想比較兩個值是否相等而不是比較布爾值,可以用equal函數。

QUnit.test( "test", function( assert ) {
  assert.equal( 555 , 555 , "IS 555 ?" );
});

n1:實際值

n2:希望值

n3:看看而已

如果這樣:

QUnit.test( "test", function( assert ) {
  assert.equal( '555' , 555 , "IS 555 ?" );
});

因為equal用的是Javascript中的==比較,所以會隱式轉換。

如果不想這樣我們可以使用deepEqual函數

QUnit.test( "test", function( assert ) {
  assert.deepEqual( '555' , 555 , "IS 555 ?" );
});

deepEqual和equal函數功能差不多,不過它用的是===全等。

如果是異步的話這些就有些無能為力了,不管QUnit提供了幾個函數可以解決。

QUnit.test( "test", function( assert ) {
  var done = assert.async();
  var qunit = document.getElementById('qunit');
  qunit.onclick = function(){
    assert.ok( true , "IS 555 ?" );
    done();
  };

});

assert.async函數用來創建一個異步操作它會返回一個函數,這個可以在你測試的下方執行一下done();

 

但是正如QUnit官方說的:

Call assert.async() for each operation. Each done callback can be called at most once.

調用每個操作async()斷言,每個所做的回調可以至多被調用一次。

 

也就是說只能執行一次,看這個。

會多一次的,也就是說如果你想執行多次這樣還不行,但是有一個叫啥斷言的東西,我們來看看。

QUnit.test( "test", function( assert ) {
  assert.expect(5);
  var done = assert.async(5);
  var qunit = document.getElementById('qunit');
    qunit.onclick = function(){
    assert.ok( true , "istrue" );
    done();
  };

});

assert.expect(5);這里寫你要測試的次數,var done = assert.async(5);也要加上次數。

我也醉了為什么要限制這個。

 

QUnit官網:http://api.qunitjs.com/

刷去吧。


文章列表


不含病毒。www.avast.com
文章標籤
全站熱搜
創作者介紹
創作者 AutoPoster 的頭像
AutoPoster

互聯網 - 大數據

AutoPoster 發表在 痞客邦 留言(0) 人氣(14)