如何在数据库中使用JestJS?

时间:2019-05-07 06:13:43

标签: express sequelize.js jestjs

我正在使用Jest,Express和Sequelize创建API的新项目。

我有一些端点在工作,并且正在为每个端点编写测试。

来自Ruby on Rails世界,我习惯于编写测试,其中每个测试之间都要清理数据库。

在Jest中这似乎是不可能的,因为似乎没有一种方法可以消除数据库的测试,因为它们都是并行运行的

考虑到这一点,我在beforeAll中创建了此全局tests/support/setup.js函数,并将Jest配置为在运行所有规格之前使用此方法:

// package.json
{...
"jest": {
    "setupFilesAfterEnv": [
      "<rootDir>/tests/support/setup.js"
    ]
  }
}
// tests/support/setup.js

import models from '../../db/models'


global.beforeAll(async () => {
  await models.sequelize.drop()
  await models.sequelize.sync()
})

但是看起来这也不起作用,但是我认为这实际上是在每个测试套件之前运行beforeAll方法。...因此数据库仍然被破坏。

现在,与数据库一起使用时,Jest对我而言似乎毫无用处。我想念什么吗?

将Jest与数据库结合使用的方法有哪些,其中每个测试均与原始数据库一起运行?

0 个答案:

没有答案