Vin*_*rga 5 javascript promise jestjs
我们的单元测试在我们的连续交付管道中的容器中运行。
有时,我们不会在单元测试中处理拒绝,但是,我认为这是不正确的,并且我认为管道会失败。
如何确保在执行jest和测试期间unhandledRejection发生事件,玩笑会退出并出错?
我试图将事件监听器挂在安装脚本中:
/* jest.config.js */
module.exports = {
setupFiles: ['<rootDir>/test/setup.ts'],
// ...
}
Run Code Online (Sandbox Code Playgroud)
在该设置脚本中,我可以检测到unhandledRejection事件,但是不幸的是,我无法开玩笑
process.on('unhandledRejection', () => {
console.error('Now what?');
console.error('I want to make sure that jest exits with an error!');
});
Run Code Online (Sandbox Code Playgroud)
And*_*erg 12
您可以创建一个 jest 配置文件jest.config.js并将以下条目放入其中:
module.exports = {
...
setupFiles: ['<rootDir>/test/setup.js'],
...
};
Run Code Online (Sandbox Code Playgroud)
然后在您的setup.js文件中,您可以执行以下操作:
process.on('unhandledRejection', (err) => {
fail(err);
});
Run Code Online (Sandbox Code Playgroud)
并且unhandledRejection会在测试中失败,尽管有两个警告需要注意:
作为上面提到的评论者,如果你的测试写得很好,那么你永远不应该遇到这种情况,但你并不总是有那么多的控制权。
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |