首先去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 |
