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 字的所有文件并相应地运行该文件。