【发布时间】:2018-10-14 18:21:01
【问题描述】:
我正在通过 Jest 和 supertest 为新 API 编写大量测试。在运行测试之前,我正在设置一个测试数据库并在其中填充用户:
测试命令
jest --forceExit --config src/utils/testing/jest.config.js
文件 jest.config.js
module.exports = {
rootDir: process.cwd(),
// Sets up testing database with users
globalSetup: './src/utils/testing/jest.setup.js',
// Ensures connection to database for all test suites
setupTestFrameworkScriptFile: './src/utils/testing/jest.db.js',
}
所以我从一些用户的数据库开始进行测试。问题是这样的:
我的一些测试依赖于其他测试的成功。在这个应用程序中,用户可以上传图像,并将它们分组。所以我的分组端点套件取决于我的图像上传套件的成功,等等。
我很清楚很多人可能会说这是不好的做法,并且测试不应该依赖于其他测试。话虽如此,我真的宁愿通过supertest 保留我的所有测试,而不是依赖注入等。我不想必须精心设置测试条件(例如,人为地创建一堆用户图像在运行测试之前),因为:(1)这只是逻辑的重复,(2)它增加了某些东西的可能性。
有没有办法将笑话套件分组?例如,按顺序运行套件:
jest run creationSuite
jest run modificationSuite
这样,我的所有“creationSuite”测试都可以同时运行,all 的成功将触发“modificationSuite”以快速失败的方式运行,等等。 p>
另外,在测试套件内部指定对其他测试套件的依赖会很棒:
describe('Grouping endpoint', () => {
// Somehow define dependencies
this.dependsOn(uploadSuite)
【问题讨论】:
标签: javascript testing ecmascript-6 jestjs supertest