spec.js 和 test.js 有什么区别?

问题描述 投票:0回答:1

在 Jest 中执行

sum.test.js
sum.spec.js
文件有什么区别?尽管执行时产生相同的输出,但这两个文件本质上在测试框架内执行相同的任务吗? sum.spec.jssum.test.js

它们有什么区别?他们在做同样的事情吗?

unit-testing jestjs
1个回答
0
投票

在 Jest 中,

.test.js
.spec.js
是命名测试文件的常规后缀。 Jest 本身不存在影响其处理这些文件的方式的技术差异;它们都被识别为测试文件并以相同的方式执行。使用 .spec.js 或 .test.js 之间的选择通常是个人或团队偏好之一,或者可能受到所使用的特定 JavaScript 框架的约定的影响。

这些区别更具语义和组织性:

.spec.js
:术语“spec”是“规格”的缩写。它来自行为驱动开发(BDD)术语。在 BDD 中,“规范”描述了被测系统的行为。带有 .spec.js 的文件通常用来描述给定代码单元(函数、类等)的预期行为。

.test.js
:这是更通用的,通常用于测试驱动开发(TDD)以及一般测试环境中。带有 .test.js 的文件可能不严格遵循 BDD 约定,并且通常用于各种测试(单元、集成、系统)。

开发人员可以选择使用

.spec.js
来指示文件内的测试是以 BDD 风格编写的,而
.test.js
可能用于不严格以 BDD 风格编写的测试或区别不重要的地方。

在实践中,您可以使用任一后缀命名 Jest 测试文件,Jest 将运行它们。您还可以通过更改 Jest 配置中的 testRegex 或 testMatch 配置设置,将 Jest 配置为查找其中一个或两个模式,甚至完全不同的模式。

因此,总而言之,虽然

sum.spec.js
sum.test.js
可能会产生相同的输出,并且都是 Jest 的有效测试文件,但区别仅在于命名约定,这可能反映了开发人员在编写测试时所采用的风格或方法.

© www.soinside.com 2019 - 2024. All rights reserved.