Jest 测试框架使用的学习笔记

简介: Jest 测试框架使用的学习笔记

Jest Tutorial for Beginners: Getting Started With JavaScript Testing


Jest 是一个 JavaScript 测试运行器,即用于创建、运行和构建测试的 JavaScript 库。


Jest 作为 NPM 包发布,您可以将其安装在任何 JavaScript 项目中。 Jest 是当今最流行的测试运行器之一,也是 React 项目的默认选择。


image.png


Setting up the project

与每个 JavaScript 项目一样,您需要一个 NPM 环境(确保在您的系统上安装了 Node)。 创建一个新文件夹并使用以下命令初始化项目:


image.png

image.png

Specifications and test-driven development

作为开发人员,我们都喜欢创意自由。 但是,在大多数情况下,当涉及到严肃的事情时,您没有那么多特权。


我们必须遵循规范,即对要构建的内容的书面或口头描述。


在本教程中,我们从项目经理那里得到了一个相当简单的规范。 一个超级重要的客户端需要一个 JavaScript 函数来过滤一个对象数组。


对于每个对象,我们必须检查一个名为“url”的属性,如果该属性的值与给定的术语匹配,那么我们应该在结果数组中包含匹配的对象。


作为一名精通测试的 JavaScript 开发人员,您希望遵循测试驱动开发,这是一种在开始编码之前强制编写失败测试的学科。


默认情况下,Jest 希望在您的项目文件夹中名为 tests 的文件夹中找到测试文件。 创建新文件夹:


mkdir tests


接下来在 tests 中创建一个名为 filterByTerm.spec.js 的新文件。 您可能想知道为什么扩展名包含 .spec。这是从 Ruby 借用的约定,用于将文件标记为给定功能的规范。


Test structure, and a first failing test

image.png


我们的第一个朋友是 describe,一个包含一个或多个相关测试的 Jest 方法。 每次你开始为一个功能编写一套新的测试时,都将它包装在一个 describe 块中。 如您所见,它需要两个参数:一个用于描述测试套件的字符串,以及一个用于包装实际测试的回调函数。


接下来我们将遇到另一个名为 test 的函数,它是实际的测试块:

image.png

这里 describe 的类型是 jest.Describe, 该函数接受两个输入参数,其类型分别为字符串和 jest.EmptyFunction

image.png

此时我们已准备好编写测试。 请记住,测试是输入、功能和预期输出的问题。 首先让我们定义一个简单的输入,一个对象数组:

image.png

接下来,我们将定义预期结果。 根据规范,被测函数应排除 url 属性与给定搜索词不匹配的对象。

例如,我们可以期待一个包含单个对象的数组,给定“链接”作为搜索词:

image.png

现在我们已准备好编写实际测试。 我们将使用 expect 和一个 Jest 匹配器来检查我们虚构的(目前)函数在调用时是否返回预期结果。

这是测试:

image.png

执行命令行:npm test

测试通过:

image.png

测试代码的 coverage:

npm test – --coverage

image.png

相关文章
|
1月前
|
JavaScript 前端开发 测试技术
jest测试核心
jest测试核心
14 2
|
1月前
|
Java 测试技术 持续交付
深入理解软件测试中的自动化框架选择
【2月更文挑战第14天】在软件测试领域,自动化测试已成为提升效率、确保质量的关键手段。选择合适的自动化测试框架对实现高效稳定的测试至关重要。本文将探讨自动化框架选择的关键因素,包括项目需求、团队技能、维护成本以及集成能力,并分析当前流行的几种自动化框架的优缺点,以指导读者根据不同的测试场景作出明智的选择。
19 0
|
29天前
|
敏捷开发 分布式计算 测试技术
深入理解软件测试中的自动化框架选择与优化策略
【2月更文挑战第29天】 在软件开发的生命周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的普及,自动化测试成为确保软件质量和加快产品上市速度的关键手段。本文将探讨在构建自动化测试框架时面临的挑战,分析不同类型自动化框架的特点及其适用场景,并提出一系列优化策略,旨在帮助测试工程师提高测试效率,确保测试结果的准确性。
16 0
|
4天前
|
监控 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第14天】在软件开发过程中,自动化测试是确保代码质量、减少人工重复劳动的关键步骤。Selenium作为一款广泛使用的自动化测试工具,提供了对多种浏览器和操作系统的支持。本文将探讨Selenium的核心组件及其架构设计,分析其如何通过WebDriver与浏览器交互,以及它如何支持多种编程语言进行脚本编写。同时,我们还将讨论Selenium Grid的作用以及它如何实现并行测试,以缩短测试周期并提高测试效率。
165 58
|
6天前
|
Web App开发 前端开发 Java
框架分析(11)-测试框架
框架分析(11)-测试框架
|
20天前
|
敏捷开发 设计模式 监控
深入理解自动化测试框架的设计原则
在软件开发的复杂多变环境中,自动化测试已成为确保产品质量和加速市场交付的关键步骤。本文将探讨自动化测试框架的设计原则,包括模块化、可扩展性、易用性和可靠性,旨在为软件测试工程师提供构建高效、健壮且易于维护的自动化测试系统的指导。通过分析设计模式的应用,我们将了解如何减少代码冗余,提高测试覆盖率,并适应快速变化的技术要求。
|
21天前
|
前端开发 IDE JavaScript
深入理解自动化测试框架Selenium的设计与实现
本文旨在探讨开源自动化测试框架Selenium的核心设计及其实现机制。通过分析其架构、组件和工作原理,揭示Selenium如何有效地支持跨浏览器、跨平台的自动化Web测试。文中不仅介绍了Selenium的主要功能模块,还详细讨论了其面临的挑战及应对策略,为读者提供了深入了解和使用Selenium的理论基础和实践指导。
|
25天前
|
设计模式 敏捷开发 监控
深入理解与应用软件自动化测试框架
在快速迭代的软件开发过程中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将详细探讨自动化测试框架的核心原理、设计模式及其在实际项目中的应用。我们将分析几种流行的自动化测试工具,如Selenium、Appium和JUnit,并讨论它们如何集成以形成强大的测试解决方案。文章还将展示通过自定义框架来满足特定测试需求的实例,以及如何通过持续集成和持续部署(CI/CD)流程优化测试实践。
|
26天前
|
敏捷开发 IDE 测试技术
深入理解自动化测试框架Selenium的设计理念与实践
随着敏捷开发和持续集成的理念深入人心,自动化测试在软件开发周期中扮演着越来越重要的角色。Selenium作为一个广泛使用的自动化测试工具,其设计理念和实践对于提高测试效率和质量具有指导意义。本文将深入探讨Selenium的核心设计原则、架构以及最佳实践,旨在帮助读者构建更稳定、高效的自动化测试系统。
|
26天前
|
jenkins 测试技术 持续交付
深入理解自动化测试框架设计原则与实践
本文旨在探讨自动化测试框架的设计原则及其在实际项目中的应用。通过对自动化测试框架的系统剖析,我们揭示了有效构建和维持测试框架的核心要素,并提供了一套实用的指导方案来帮助读者实现高效、可靠的自动化测试流程。文章不仅聚焦于框架的技术细节,也强调了灵活性、可维护性和可扩展性在设计时的重要性,同时结合实际案例分析,展示了如何在不同测试环境中定制化和优化测试框架。