Jasmine 框架教程:使用示例进行单元测试

什么是 JasmineJS?

Jasmine 是一个开源且最流行的 JavaScript 库测试框架,用于测试任何类型的 JavaScript 应用程序。Jasmine 遵循行为驱动开发 (BDD) 流程,以确保 JavaScript 的每一行语句都经过适当的单元测试。

Jasmine 框架用于什么?

测试是任何应用程序的关键要素。对于 NodeJS 单元测试,可用的测试框架称为 Jasmine。早在 2000 年初,就有一个用于测试 JavaScript 应用程序的框架,名为 JsUnit。后来,该框架得到了升级,现在称为 Jasmine。

Jasmine 有助于实现自动单元测试,这已成为开发和部署现代 Web 应用程序的关键实践。

在本 Jasmine 教程中,您将学习如何设置 Jasmine 环境以及如何为您的第一个 Node.js 应用程序运行 Jasmine 测试。

Jasmine 用于测试 Node.js 应用程序

Jasmine 是一个用于 JavaScript 的行为驱动开发 (BDD) 测试框架。它依赖于浏览器、DOM 或任何 JavaScript 框架。因此,它适用于网站、Node.js 项目或任何可以运行 JavaScript 的地方。要开始使用 Jasmine,您需要先下载并安装必要的 Jasmine 模块。

如何设置 Jasmine 测试环境

接下来在本 Jasmine Node JS 教程中,您需要初始化您的环境并检查 jasmine 配置文件。以下步骤展示了如何在您的环境中设置 Jasmine:

第 1 步) 安装 NPM 模块
您需要安装 NPM jasmine 模块才能在 Node 应用程序中使用 jasmine 框架。要安装 jasmine-node 模块,请运行以下命令。

npm install jasmine-node

第 2 步) 初始化 Jasmine 环境
初始化项目——通过这样做,jasmine 会为您创建一个 spec 目录和配置文件 json。spec 目录用于存储所有测试文件。通过这样做,jasmine 将知道所有测试在哪里,然后可以相应地执行它们。该 JSON 文件用于存储有关 jasmine 的特定配置信息。

要初始化 jasmine 环境,请运行以下命令

jasmine init

第 3 步) 检查您的配置文件。
配置文件将存储在 spec/support 文件夹中,名为 jasmine.json。此文件列出了您希望 Jasmine 运行程序包含的源文件和 spec 文件。

以下屏幕截图显示了 jasmine 的 package.json 文件的典型示例。

Setup Jasmine Test Environment

  1. 请注意此处指定的 spec 目录。如前所述,当 jasmine 运行时,它会在此目录中搜索所有测试。
  2. 接下来要注意的是 spec_files 参数——这表示创建的任何测试文件都应附加“spec”关键字。

接下来在本 Jasmine 框架教程中,我们将学习如何使用 Jasmine 来测试 Node.js 应用程序。

如何使用 Jasmine 测试 Node.js 应用程序

为了使用 Jasmine 对 Node.js 应用程序进行单元测试,需要遵循一系列步骤。

在我们下面的示例中,我们将定义一个需要测试的加法模块。然后,我们将定义一个带有测试代码的单独代码文件,然后使用 jasmine 来相应地测试 Add 函数。

第 1 步) 定义需要测试的代码。我们将定义一个将两个数字相加并返回结果的函数。这段代码将写入一个名为“Add.js”的文件中。

Use Jasmine to test Node.js Applications

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};

代码解释

  1. “exports”关键字用于确保此文件中定义的功能可以被其他文件访问。
  2. 然后,我们定义了一个名为“AddNumber”的函数。此函数定义为接受两个参数 a 和 b。该函数被添加到模块“exports”中,使该函数成为一个可以被其他应用程序模块访问的公共函数。
  3. 我们最后返回函数相加后的值。

第 2 步) 接下来,我们需要定义我们的 jasmine 测试代码,它将用于测试 Add.js 文件中的“Add”函数。以下代码需要放入一个名为 add-spec.js 的文件中。

注意:– 测试文件名中需要添加“spec”一词,以便 jasmine 可以检测到它。

Use Jasmine to test Node.js Applications

代码解释

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”函数。
  2. 我们现在正在创建我们的测试模块。测试模块的第一部分是描述一个方法,该方法基本上为我们的测试命名。在这种情况下,我们的测试名称是“Addition”。
  3. 下一部分是使用“it”方法为我们的测试提供描述。
  4. 我们现在调用 Addnumber 方法,并传入 5 和 6 两个参数。这些参数将被传递到 App.js 文件中的 Addnumber 方法。然后将返回值存储在一个名为 value 的变量中。
  5. 最后一步是进行我们的实际测试。由于我们期望 Addnumber 函数返回的值是 11,因此我们使用 expect(value).toBe(expected value) 方法来定义它。

输出

  1. 要运行测试,需要运行 jasmine 命令。
  2. 以下屏幕截图显示,在运行 jasmine 命令后,它将检测到有一个名为 add-spec.js 的测试,并相应地执行该测试。如果测试中有任何错误,也会相应地显示。

Use Jasmine to test Node.js Applications

摘要

  • 要测试 Node.js 应用程序,首先需要安装 jasmine 框架。这可以通过 Node 包管理器完成。
  • 测试代码需要写在单独的文件中,并且文件名需要附加“spec”一词。只有这样,jasmine 才能检测到需要运行的文件。
  • 要运行测试,您需要执行 jasmine 命令。这将找到所有附加有“spec”字样的文件并相应地运行文件。