我看过一些名为*.test.js
, *-test.js
,*.spec.js
等的文件。
是否有如何命名 JavaScript 测试文件的实际约定?或者这取决于我使用的框架?
我看过一些名为*.test.js
, *-test.js
,*.spec.js
等的文件。
是否有如何命名 JavaScript 测试文件的实际约定?或者这取决于我使用的框架?
在使用了几个测试框架后,我觉得下面的更好:
对于测试文件名,使用如下:
/test/*.test.js
- 首选,无需解释。/test/*.spec.js
- 好的,但是新加入的人总是问我 - 为什么?这里的 Aspec
表示需求规范。/test/*.test.txt
- 首选,如果测试用例在文本文件中。一组行是一个测试用例(见下文)。例如:
a.js
是应该测试的主要 JavaScript 文件/test/a.test.js
是上面测试的测试文件a.js
。请注意,这/test/
是一个测试文件夹。你可能会发现*.test.txt
新的,所以添加更多的细节。
一个测试用例的格式为三行,可以是以下格式*.test.txt
:
inputParam1 - may be the first parameter of a critical function which needs many tests
inputParam2 - may be second parameter of a critical function which needs many tests
expected
inputParam1
inputParam2
expected
...
因此,每三行构成一个测试用例。
您可以偶尔添加如下函数名称line
,以测试不同的函数:
-func:someMethod1
... (above input/expected lines)
-func:someMethod2
... (above input/expected lines)
要执行函数名,或为类创建新对象,可以使用eval(className)
,someMethod1[inputParam]
等。虽然eval
不推荐,但我使用它,因为它是测试框架,不是生产文件。如果这是一个问题,你会比 eval 更好的方法。
在使用了几个测试框架后,发现这个文本文件测试,对于一些特殊情况来说是最方便的。(无需在 JavaScript、JSON 等中格式化)
如果需要,您可以忽略以#、// 或所有空行开头的那个。
因此,我编写了自己的框架,以这种方式工作。
如果您知道可以阅读上述格式的测试框架,*.test.txt
请在下面发表评论。
如果您需要我的代码,请联系我,将通过 GitHub 分享。
我更喜欢classServiceName.spec.ts。你的问题被标记为单元测试,所以我假设你正在测试一个单元。
因此,如果我有一个名为person.component.ts的组件,我的测试将是person.component.spec.ts并且它将位于相同的文件夹结构中。如果我有person.service.ts那么测试将是person.service.spec.ts相同的文件夹结构。
您的标签中还包含Cypress,因此这可能是一个集成测试。我会将其命名为我正在测试的页面或场景。很抱歉假设 Angular 和 TypeScript。