2011-04-20 53 views
5

我目前正在研究我的第一個小的Javascript項目,這個項目通常是一個驅動Thunderbird擴展的小腳本。 由於我是一名Java程序員,我喜歡測試我的代碼以保持其可維護性並檢查它是否按預期工作。javascript測試

我想測試的東西是一個簡單的腳本,它基本上獲取一個URI,連接到服務器,下載一個zip文件並最終提取到它的文件系統。 我不使用Javascript - 「類」,我只有這些2-3個函數,組裝在一個主函數中。

我想模擬服務器,以測試腳本的行爲與不同的服務器響應,損壞的文件等。

現在我的問題是,我真的不知道如何在JavaScript中測試。 我試圖獲得可用測試框架的概述,並最終決定茉莉花是我想使用的,因爲它似乎是那裏最成熟的一個。

我對Java中的單元測試非常好,並認爲自己是一名普通的測試工程師,但我很難獲得對整個腳本測試的訪問權限。

有沒有人很好的建議如何做到這一點?也許一個有用的教程或一個很好的例子?

+4

請檢查http://jsfiddle.net。這是一個很好的工具來玩javascripting,甚至包含大多數javascrtip框架以及你可以輸入html和一些css。你也可以加載你的自定義CSS/JavaScript庫。 – 2011-04-20 19:38:08

+0

不僅僅是Java人喜歡測試;) – Marcelo 2011-04-21 01:31:04

+0

jsfiddle似乎對探索某些代碼來說真的很不錯。不幸的是我還沒有找到時間更詳細地玩弄它。問題是,它似乎沒有幫助我測試我的代碼......或者我錯過了什麼? – Patrick 2011-04-23 13:59:58

回答

1

該方法可能與您在Java中採用的方法相同:剔除提取數據的類/函數。

我假設你正在使用XMLHttpRequest的,所以最簡單的方式做這將是這樣的:

  • 有執行的請求,並與數據回調函數
  • 提供一種方式注入到這一點你的代碼或它與模擬
  • 更換更換數據取回功能使用模擬功能,只需用你的虛擬數據回調

我會推薦書"Test Driven JavaScript Development"進一步研究

+0

嘿,賈尼!感謝您的回答。你使用哪種測試框架? – Patrick 2011-04-23 13:55:40

+0

啊,是的,我確實使用了一個XMLHttpRequest,包括一個if-modified-since頭。 – Patrick 2011-04-23 14:02:52

+0

我傾向於在我的項目中使用JsTestDriver,因爲使用它可以很容易地設置多瀏覽器測試,並且可以從命令行運行測試,這對我來說是必須的。它也很好地集成了持續集成的東西。 – 2011-04-23 17:12:43