FireUnit – 體驗測試驅動的JavaScript開發

來源:互聯網
上載者:User

FireUnit是一個Firefox擴充,同時也是一個Firebug擴充,這個 擴充提供了一堆API可以協助你實現JavaScript代碼的單元測試,還在Firebug的一堆Tab中再增加一個用於顯示測試結果。現在提供的還是 很基本的測試,但是我們要相信這個擴充的潛力,因為它的作者是John Resig和Jan Odvarko,什嗎?沒聽過他們?小聲問句,你聽過JavaScript沒有?

【原文標題】http://ejohn.org/blog/fireunit/
【原文作者】John Resig

以下內容是對原文的翻譯:

在和Firebug團隊一起工作的幾個月裡,我和Jan Odvarko嘗試建立一種對JavaScript進行單元測試的方法,這段工作的最後成果是一個叫做FireUnit的Firefox/Firebug擴充。

FireUnit提供了一組JavaScript API,可以進行簡單的單元測試,同時把結果顯示在Firebug中新增的Tab欄下。

下面就是幾個利用FireUnit API進行單元測試的例子(現在我們只提供一些基本的方法,以後就會擴充出更多的方法)。

// 最簡單的true-like/false-like測試
fireunit.ok( true, "I'm going to pass!" );
fireunit.ok( false, "I'm going to fail!" );

// 比較兩個字串 - 並將差異顯示出來
fireunit.compare(
"The lazy fox jumped over the log.",
"The lazy brown fox jumped the log.",
"Are these two strings the same?"
);

// 用Regex比較字串
fireunit.reCompare(
/The .* fox jumped the log./,
"The lazy brown fox jumped the log.",
"Compare a string using a RegExp."
);

// 顯示全部結果
fireunit.testDone();

單元測試的結果會顯示在Firebug中叫做Test的Tab中(當然為了讓FireUnit運行,必須先安裝FireBug)。結果頁面中的每一項都可以通過展開顯示詳細資料,包括測試的追蹤記錄,以及字串比較的區別等。

FireUnit也提供了一組方法,用於類比本地的瀏覽器事件

// 你可以通過下面的方式類比瀏覽器事件
var input = document.getElementsByTagName("input")[0];
fireunit.mouseDown( input );
fireunit.click( input );
fireunit.focus( input );
fireunit.key( input, "a" );

And a way of running a batch of test files (each of which would contain a number of individual tests).

// 或者可以一起運行多個頁面的測試
fireunit.runTests("test2.html", "test3.html");

// 測試檔案的結尾標識
fireunit.testDone();

我們通過這種方式設計了很多Firebug測試案例,尤其針對那些基於網路的功能。

現有的測試案例,只要通過簡單的改寫,就可以在FireUnit直接顯示結果。

jQuery選擇符的測試案例是由下面的程式碼片段組成的:

if ( typeof fireunit === "object" ) {
QUnit.log = fireunit.ok;
QUnit.done = fireunit.testDone;
}

這個測試案例的結果如下所示:

如果你要開始使用FireUnit,可以先去Fireunit.org看看,順便下載最新版本。

你也可以到Github去下載原始碼。

Jan也在自己的部落格上寫了一篇更加詳細的文章,介紹我們如何在Firebug的開發過程中應用FireUnit。

這個項目現在還處在雛形階段,還有很大的提升空間,我們需要大家的反饋。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.