JasmineJS - BDD 架构


Jasmine 遵循Behave驱动开发 (BDD) 框架。在学习Jasmine工作原理之前,我们先来了解一下什么是BDD框架。

以下流程图描述了 BDD 框架的不同阶段。

业务驱动开发框架

步骤 1 - 开始

在此阶段,我们将为 Jasmine 应用程序准备好环境。

第 2 步 - 编写失败的测试

在此步骤中,我们将编写第一个测试用例。很明显,这个测试将会失败,因为没有这样的文件或函数要测试。

步骤 3 - 编写代码使其通过

在此阶段,我们将准备需要测试的 JavaScript 文件或函数。这个阶段至关重要,因为我们需要确保前期准备的所有测试用例都能成功。

步骤 4 - 重构

重构是 BDD 模型的一个非常重要的阶段,我们需要为特定的应用程序或功能准备尽可能多的测试用例。

步骤 5 - 停止

如果一切顺利,那么您的应用程序必须准备就绪并启动。因此,我们可以将此步骤视为 BDD 应用程序的结束。

例子

现在我们已经掌握了一些关于BDD框架工作原理的知识。让我们看看Jasmine在JavaScript测试线上是如何遵循这个BDD框架的。

正如屏幕截图所示,我们需要使用 Jasmine 框架测试 Abc.js。SpecRunner.html是输出文件,它将采用Spec.js(测试用例文件)、Abc.js(要测试的文件)、LIB 作为输入,运行规范文件中存在的所有测试用例,并将结果渲染到浏览器。

工作准则

Lib - 这些是内置的 JavaScript 文件,有助于测试我们项目中使用的不同函数和其他 JavaScript 文件。

Spec.js(测试用例文件) - 这是包含测试任何 JavaScript 函数或文件所需的所有测试用例的 JavaScript 文件。在 BDD 方法中,我们将首先编写测试,因此这是需要首先更新的文件。这肯定会失败,因为我们的项目中不存在可以测试的此类文件或函数。该文件可以无限次重构,直到所有功能都经过测试。

Abc.js(要测试的文件) - 这是包含将使用 Spec.js 和 Lib 文件进行单元测试的功能的文件。

SpecRunner.html - SpecRunner.html 是一个普通的 html 文件,它将借助嵌入的 JavaScript 代码呈现单元测试的输出。