我见过一些名为*.test.js
,*-test.js
,*.spec.js
的文件。等。
是否有实际约定如何命名js测试文件?或者这取决于我使用的框架?
答案 0 :(得分:2)
这取决于框架,尽管大多数框架允许您定义glob模式以确定哪些文件应被视为测试文件,例如jest
中的选项testRegex
。 jest
的默认值会将*.test.js
目录中的*.js
和__tests__
个文件视为测试文件。在mocha
中,它是grep
option。
答案 1 :(得分:1)
使用了多个测试框架后,以下感觉更好:
对于测试文件名,请按以下方式使用:
/test/*.test.js
-首选,无需解释。/test/*.spec.js
-好的,但是新加入的参与者总是问我-为什么?规范意味着需求规范。/test/*.test.txt
-如果测试用例在文本文件中,则首选。一组线是一个测试用例(见下文)。例如:
a.js
是应测试的主要JavaScript文件/test/a.test.js
是在a.js
以上进行测试的测试文件。请注意,/test/
是一个测试文件夹。您可能会发现*.test.txt
的新内容,因此添加了更多详细信息。
1个测试用例的格式为3行,可以在*.test.txt
中采用以下格式:
inputParam1 - may be 1st param of a critical function which needs many tests
inputParam2 - may be 2nd param of a critical function which needs many tests
expected
inputParam1
inputParam2
expected
...
因此,每3行就有1个测试用例。
您可以不时添加如下所示的功能名称line
,以测试不同的功能:
-func:someMethod1
... (above input/expected lines)
-func:someMethod2
... (above input/expected lines)
要执行函数名称或为类创建新对象,可以使用eval(className)
,someMethod1[inputParam]
等。尽管不建议使用eval
,但我还是使用它。测试框架不是生产文件。如果您担心的话,您将比评估更好的方法。
在使用了多个测试框架之后,发现此文本文件已经过测试,对于某些特殊情况,到目前为止最为方便。 (无需格式化为js,json等)
如果需要,您可以忽略以#或//或所有空行开头的内容。
因此,我编写了自己的框架,这种方式即可。
如果您知道可以读取上述*.test.txt
格式的测试框架,请在下面进行注释。
如果需要我的代码,请给我Ping,将通过github分享。
答案 2 :(得分:0)
我更喜欢classServiceName.spec.ts。你的标签有单元测试,所以我假设你正在测试一个单元。所以,如果我有一个名为person.component.ts的组件,我的测试将是person.component.spec.ts,它将在同一个文件夹结构中。如果我有person.service.ts那么测试将是person.service.spec.ts相同的文件夹结构。您的标签中也有柏树,因此可能是集成测试。我会将其命名为我正在测试的页面或场景。很抱歉假设Angular和打字稿。