Jasmine JavaScript

2025 年 3 月 2 日 | 6 分钟阅读

什么是 Jasmine JavaScript?

在 JavaScript 中,Jasmine 是一个非常流行的工具,开发者使用它来处理复杂的测试过程。通过使用 jasmine.js,开发者可以测试任何类型的 JavaScript 应用程序。

在 JavaScript 中,Jasmine 遵循一个称为行为驱动开发 (BDD) 的流程,它有助于我们确保 JavaScript 的每一行语句都经过适当的单元测试。

借助 BDD 流程,它可以提供一种简洁的语法来测试整个应用程序的最小单元,而不是将其作为一个整体进行测试。

Jasmine 是主要由 Angular 开发者使用的工具,因为它原生包含在Angular 项目中,并且可以测试异步或同步的 JavaScript 代码。

Jasmine JavaScript 的特性

Jasmine JavaScript 具有一些特性,例如:

JavaScript 中,Jasmine 可用于浏览器和 Node.js,这有助于我们提供清晰的语法,以便于编写测试。

在 JavaScript 中,它还提供行为驱动测试,并且不需要 DOM 来编写测试用例。

Jasmine 还支持异步测试。

如果我们想实现模拟测试,可以在 Jasmine.JS 中使用 spies。

Jasmine 被 Python 和Ruby 等语言使用。

在 JavaScript 中,Jasmine 是一个“自带电池”的,提供了我们测试代码所需的一切。

Jasmine 工具在 JavaScript 中是如何工作的?

在 JavaScript 中,Jasmine 是一个用于使我们的代码易于阅读的框架。如果我们想理解 Jasmine 的工作原理,我们需要了解一些术语,例如:

Suite (套件)

在 JavaScript 中,一组测试用例称为 Jasmine Suite。它用于对代码的特定操作进行测试。JavaScript 中的 Jasmine suite,其全局函数 describe 的参数——第一个参数显示测试套件的标题,第二个参数显示实现测试套件的函数。

语法

测试套件的语法如下:

Spec (规格)

在 JavaScript 中,我们可以将 Jasmine spec 定义为测试套件内的测试用例。在 JavaScript 中,Jasmine spec 也有两个参数:第一个参数用于显示测试套件的标题,第二个参数显示实现测试套件的函数。它包含一个或多个期望 (expectations),本质上是一个断言,可以是 true 或 false。

在 JavaScript 中安装 Jasmine

在 JavaScript 中,如果我们想安装 Jasmine,那么我们需要在我们的项目中本地遵循一些命令,例如:

在 JavaScript 中,我们可以使用“npx jasmine…”命令调用 CLI 工具,在本地安装 Jasmine 后。我们可以全局安装 Jasmine,以便无需 npx 即可调用 CLI 工具。

但是,不建议全局安装 Jasmine,因为它难以使全局安装的 Jasmine 版本与使用它的每个项目保持同步。

初始化一个项目

在 JavaScript 中,我们可以非常简单地初始化一个 Jasmine 项目。这是通过创建一个 spec 目录和配置文件 JSON 来完成的。

如何在 JavaScript 中实现 Jasmine 工具?

在 JavaScript 中实现 Jasmine 工具有多种方法,如下所述:

  • 将 Jasmine 实现/用作库
  • 使用独立的 Jasmine
  • 通过 CLI 实现/使用 Jasmine

将 Jasmine 实现/用作库

在 JavaScript 中,我们可以使用各种方法和路径将 Jasmine 作为库来使用。

示例

我们来看一个例子:首先,我们需要导入 Jasmine。然后,我们使用 loadConfigFile() 方法加载位于“spec/support/jasmine.json”路径的配置文件,最后,我们将执行 Jasmine。

使用独立的 Jasmine

在 JavaScript 中,对于此实现,首先,我们需要从 GitHub 链接下载最新版本的 Jasmine,然后将文件解压到我们想要测试的项目文件夹中。文件夹的内容包含一些默认文件和文件夹,如下所述:

/lib:它包含核心的 Jasmine 文件。

/src:此文本包含我们需要测试的源文件。此外,这些文件包括已删除的文件(如果我们的项目文件夹已设置好),或者可以用来适当地托管我们的源代码。

/spec:使用 spec,我们可以包含我们将要编写的测试。

SpecRunner.html:在 JavaScript 中,此文件用作测试运行器。我们只需打开此文件即可运行我们的 spec。

在 JavaScript 中,我们需要更改默认 SpecRunner.html 文件中包含的 src 和 spec 文件夹,以包含我们实际的源文件和测试文件。

示例

通过 CLI 实现/使用 Jasmine

在 JavaScript 中,Jasmine CLI 使运行 Jasmine 测试变得容易。默认情况下,输出显示在终端中。为了更好地理解,我们应该首先运行以下命令来全局安装 Jasmine:

下一步是为我们的项目创建一个文件夹并进入其中。

已创建 Jasmin.json 文件。它包含 jasmine.json 文件的默认内容。

示例

说明

  • spec_dir:使用此选项,我们可以指定 Jasmine 查找测试文件的路径。
  • helpers:我们可以指定 Jasmine 查找帮助器文件的路径。这些文件在 spec 之前执行/这些帮助器文件可用于定义自定义匹配器。
  • spec_files:它指定测试文件的模式,即默认情况下,所有以 Spec 或 spec 字符串结尾的 JS 文件。
  • stopSpecOnExpectationFailure:请记住这一点:“当设置为 true 时,它会在第一次期望失败时立即停止 spec,这可以作为 CLI 选项与 stop-on-failure 一起使用。”
  • random:“在使用 JavaScript 时,将 Jasmine 设置为 true 会导致它伪随机地运行测试用例,使其成为一个可行的 CLI 选项。”

示例

让我们看一个简单的例子,了解 Jasmine 工具的用法:

输出

 
beforeEach level 1
beforeEach level 2
beforeEach level 3
A simple spec in level 3
afterEach level 3
afterEach level 2
afterEach level 1   

Jasmine 工具在 JavaScript 中的优点

Jasmine 工具在 JavaScript 中具有一些优点,例如:

在 JavaScript 中,Jasmine 是浏览器、框架、平台和语言无关的。

在 JavaScript 中,Jasmine 提供清晰易读的语法,通过其内置的匹配器,可以轻松编写测试。

在 JavaScript 中,Jasmine 支持测试驱动开发和行为驱动开发。

Jasmine 工具在 JavaScript 中的缺点

在 JavaScript 中使用 Jasmine 工具也有一些缺点,例如:

它需要大量的配置。

在 JavaScript 中,使用 Jasmine 工具的用户在使用它之前必须选择一个断言库或一个模拟框架。

配置过程可能相当令人沮丧。

结论

总而言之,Jasmine 不仅仅是一个测试框架;它是通往更可靠、可维护和高效的 JavaScript 应用程序的途径。Jasmine 框架几乎内置了所有内容,包括断言/期望和测试双工工具。但是,它没有测试运行器,所以我们需要使用像 Karma 这样的工具。