有没有办法在全球范围内写一个beforeEach?

时间:2018-01-22 23:30:38

标签: node.js sequelize.js jest

我正在尝试使用sequelize编写测试,我想在每次测试之前截断所有表。如果可能的话,我不想写那个或在每个测试文件中运行它。有谁知道这样做的方法?

似乎jest应该支持类似的东西。

我目前正在尝试使用globalSetup,但这是一个beforeAll。

我还有另一个问题,那就是当我运行globalSetup时,我会这样做:

  module.exports = () => {                                                                                                                                                                                
    sequelize.db.sync({ force: true })
  }

两次中哪一次有效。所以当我需要它来运行同步时,我猜这是异步运行。

1 个答案:

答案 0 :(得分:0)

一种方式:

sequelize.db.sync({ force: true }).then(() => {
    // write you test code here
    // Or
    // or call the function from here to perform your test
})

或者您也可以这样做:

// trunk.js

module.exports = () => {                                                                                                                                                                                
    sequelize.db.sync({ force: true })
}

// test.js

const trunk = require('./trunk');

module.exports = () => { 
    trunk.then(() => {
        // write you test code here
    })
}