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
} 
  1. 請注意,此處指定了 spec 目錄。如前所述,當 jasmine 執行時,它會搜尋此目錄中的所有測試。
  2. 接下來要注意的是 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;
};

程式碼說明:

  1. exports 關鍵字用於確保其他檔案實際可以訪問此檔案中定義的功能。
  2. 然後我們定義一個名為 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);
});
});

程式碼說明:

  1. 我們需要首先包含我們的 Add.js 檔案,以便我們可以測試此檔案中的 AddNumber 函式。 我們現在正在建立我們的測試模組。測試模組的第一部分是描述一種基本上為我們的測試命名的方法。在這種情況下,我們的測試名稱是 Addition
  2. 接下來的一點是使用 it 方法為我們的測試提供描述。
  3. 我們現在呼叫 Addnumber 方法併傳送 2 個引數 5 和 6.這將傳遞給 App.js 檔案中的 Addnumber 方法。然後將返回值儲存在名為 value 的變數中。
  4. 最後一步是進行比較或我們的實際測試。由於我們期望 Addnumber 函式返回的值為 11,因此我們使用 expect(value).toBe(expectedValue) 方法來定義它。

** **輸出

  1. 為了執行測試,需要執行命令 jasmine。
  2. 如下所示,在執行 jasmine 命令後,它將檢測到有一個名為 add-spec.js 的測試並相應地執行該測試。如果測試中有任何錯誤,將相應顯示。
C:\Users\Administrator\WebstormProjects\Sample>jasmine
Started
.

1 spec, 0 failures

概要

  • 為了測試 Node.js 應用程式,需要首先安裝 jasmine 框架。這是通過使用 Node 包管理器完成的。
  • 測試程式碼需要寫在一個單獨的檔案中,spec 一詞應該附加到檔名中。只有這樣做才能使 jasmine 能夠檢測到需要執行的檔案。
  • 要執行測試,需要執行 jasmine 命令。這將找到附加了 spec 字的所有檔案並相應地執行該檔案。