JasmineJS - BDD 架构
Jasmine 遵循行为驱动开发 (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 作为输入,并运行 spec 文件中的所有测试用例,并将结果呈现到浏览器中。
Lib − 这些是内置的 JavaScript 文件,将有助于测试我们项目中使用的不同函数和其他 JavaScript 文件。
Spec.js(测试用例文件) − 这是包含测试任何 JavaScript 函数或文件所需的所有测试用例的 JavaScript 文件。在 BDD 方法中,我们将首先编写测试,因此这是需要首先更新的文件。这肯定会失败,因为我们的项目中没有可以测试的文件或函数。此文件可以无限次重构,直到所有功能都经过测试。
Abc.js(要测试的文件) − 这是包含您的功能的文件,将使用 Spec.js 和 Lib 文件对其进行单元测试。
SpecRunner.html − SpecRunner.html 是一个普通的 html 文件,它将在其中嵌入的 JavaScript 代码的帮助下呈现单元测试的输出。