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