【发布时间】:2020-09-16 01:37:49
【问题描述】:
我正在寻找一些构建项目的方法,以便一目了然地知道哪些文件需要/应该进行单元测试,哪些文件不需要。
这就是我寻找这个的原因:假设我有一个结构,其中包含各种模块。在添加业务逻辑时,我还为其添加了单元测试。有一个业务逻辑someFile.js 文件和一个随附的测试文件someFile.spec.js。我也有将我的业务逻辑单元组合在一起的集成层代码。对于这些,我认为我只想在集成测试中涵盖它们。由于集成测试可以跨越多个文件,我将把它们放在顶级文件夹中。现在的问题是,当我查看项目的鸟瞰图时,看起来我缺少对那些仅集成文件的测试,而实际上我已经决定要在集成中涵盖它们测试而不是单元测试。所以,这涉及到一些心理开销。
我目前正在尝试和评估如下结构来帮助解决这个问题。每个模块都有一个文件夹。每个模块文件夹都有一个集成文件夹,我知道其中的文件不需要单元测试。每个模块文件夹还有一个服务文件夹,我知道我需要在其中进行单元测试。有一个顶级测试文件夹,其中包含集成测试。
src
|__ fileSystem
|__ integration
|__ save.js
|__ delete.js
|__ index.js
|__ dataApi
|__ integration
|__ get.js
|__ getAll.js
|__ service
|__ success.js
|__ success.spec.js
|__ error.js
|__ error.spec.js
|__ index.js
|__ calculate
|__ service
|__ add.js
|__ add.spec.js
|__ subtract.js
|__ subtract.specjs
|__ index.js
|__ utility
|__ service
|__ sort.js
|__ sort.spec.js
|__ unique.js
|__ unique.spec.js
|__ index.js
|__ test
|__ edit
|__ addNote.spec.ts
|__ removeNote.spec.ts
|__ index.js
我可以尝试使用代码覆盖来做到这一点,但我仍然需要某种模式来区分集成代码和业务逻辑代码。
还有哪些其他的结构方式?是否有公认的最佳实践方法来做到这一点?如果不是在 JavaScript 中,其他语言是否有这方面的最佳实践结构?
【问题讨论】:
标签: javascript unit-testing architecture integration-testing directory-structure