Node.js Jasmine 單元測試
測試是任何應用程式的關鍵元素。對於 Node.js,可用於 Testing 的框架稱為 Jasmine。在 2000 年初,有一個測試 JavaScript 應用程式的框架,稱為 JsUnit。後來這個框架升級了,現在被稱為 Jasmine
。
Jasmine 有助於自動化單元測試,這在開發和部署現代 Web 應用程式時已成為一項非常關鍵的實踐。
在本教程中,你將學習如何使用 jasmine 設定環境,以及如何使用 Jasmine 開始測試第一個 Node.js 應用程式。
在本教程中,你將學習 -
-
用於測試 Node.js 應用程式的 Jasmine 概述
-
如何使用 Jasmine 測試 Node.js 應用程式
用於測試 Node.js 應用程式的 Jasmine 概述
Jasmine 是一個用於 JavaScript 的**行為驅動開發(BDD)**測試框架。它不依賴於瀏覽器,DOM 或任何 JavaScript 框架。因此,它適用於網站,Node.js 專案或 JavaScript 可以執行的任何地方。要開始使用 Jasmine,你需要先下載並安裝必要的 Jasmine 模組。
接下來,你需要初始化你的環境並檢查 Jasmine 配置檔案。以下步驟顯示瞭如何在你的環境中設定 Jasmine
步驟 1: 安裝 NPM 模組
要在 Node 應用程式中使用 jasmine 框架,需要首先安裝 jasmine 模組。要安裝 jasmine-node 模組,請執行以下命令。
npm install jasmine-node
步驟 2: 初始化專案 通過這樣做,Jasmine 為你建立 spec 目錄和配置 json。spec 目錄用於儲存所有測試檔案。通過這樣做,Jasmine 將知道所有測試的位置,然後可以相應地執行它們。JSON 檔案用於儲存有關 Jasmine 的特定配置資訊。
要初始化 Jasmine 環境,請執行以下命令
jasmine init
步驟 3: 檢查配置檔案。配置檔案將作為 jasmine.json 儲存在 spec/support 資料夾中。此檔案列舉了你希望 Jasmine 執行器包含的原始檔和規範檔案。
下面的程式碼是 jasmine 的 package.json 檔案的典型示例。
{
"spec dir": "spec",
"spec files": [
"**/* [SS]pec.js"
],
"helpers": [
"helpers/**/*.js"
],
"stopSpecOnExpectationFailure": false,
"random": false
}
- 請注意,此處指定了 spec 目錄。如前所述,當 jasmine 執行時,它會搜尋此目錄中的所有測試。
- 接下來要注意的是 spec__files 引數 - 這表示無論建立什麼測試檔案,都應該附加
spec
關鍵字。
如何使用 Jasmine 測試 Node.js 應用程式
為了使用 Jasmine 測試 Node.js 應用程式,需要遵循一系列步驟。
在下面的示例中,我們將定義一個模組,該模組新增需要測試的 2 個數字。然後,我們將使用測試程式碼定義單獨的程式碼檔案,然後使用 Jasmine 相應地測試 Add 函式。
步驟 1: 定義需要測試的程式碼。我們將定義一個函式,它將新增 2 個數字並返回結果。這段程式碼將寫在一個名為 Add.js
的檔案中。
var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};
程式碼說明:
exports
關鍵字用於確保其他檔案實際可以訪問此檔案中定義的功能。- 然後我們定義一個名為
AddNumber
的函式。該函式定義為採用 2 個引數 a 和 b。該函式被新增到模組exports
中,以使該函式成為可由其他應用程式模組訪問的公共函式。 我們終於使我們的函式返回引數的附加值。
步驟 2: 接下來我們需要定義我們的茉莉花測試程式碼,用於在 Add.js 檔案中測試我們的 Add
功能。下面的程式碼需要放在一個名為** add-spec.js 的檔案中。**
注意: - 需要將 spec
一詞新增到測試檔案中,以便 jasmine 可以檢測到它。
var app=require("../Add.js");
describe("Addition",function(){
it("The function should add 2 numbers",function() {
var value=app.AddNumber(5,6);
expect(value).toBe(11);
});
});
程式碼說明:
- 我們需要首先包含我們的 Add.js 檔案,以便我們可以測試此檔案中的
AddNumber
函式。 我們現在正在建立我們的測試模組。測試模組的第一部分是描述一種基本上為我們的測試命名的方法。在這種情況下,我們的測試名稱是Addition
。 - 接下來的一點是使用
it
方法為我們的測試提供描述。 - 我們現在呼叫 Addnumber 方法併傳送 2 個引數 5 和 6.這將傳遞給 App.js 檔案中的 Addnumber 方法。然後將返回值儲存在名為 value 的變數中。
- 最後一步是進行比較或我們的實際測試。由於我們期望 Addnumber 函式返回的值為 11,因此我們使用
expect(value).toBe(expectedValue)
方法來定義它。
** **輸出
- 為了執行測試,需要執行命令 jasmine。
- 如下所示,在執行 jasmine 命令後,它將檢測到有一個名為 add-spec.js 的測試並相應地執行該測試。如果測試中有任何錯誤,將相應顯示。
C:\Users\Administrator\WebstormProjects\Sample>jasmine
Started
.
1 spec, 0 failures
概要
- 為了測試 Node.js 應用程式,需要首先安裝 jasmine 框架。這是通過使用 Node 包管理器完成的。
- 測試程式碼需要寫在一個單獨的檔案中,
spec
一詞應該附加到檔名中。只有這樣做才能使 jasmine 能夠檢測到需要執行的檔案。 - 要執行測試,需要執行 jasmine 命令。這將找到附加了
spec
字的所有檔案並相應地執行該檔案。