尽管我听过“ SIGTERM”信号

时间:2018-10-18 02:41:57

标签: javascript node.js jestjs

我已经听过'SIGTERM'信号以进行正常关机:

   // snippet of server.js 
   process.on('SIGTERM', () => {
        console.log('I will close database here.')
        process.exit(0)
   })

我用Jest做测试,下面是代码:

describe('on SIGTERM', () => {
 beforeAll(() => {
     process.exit = jest.fn(); // substituted by mock function
     return require('../server'); // run server.js
 });

 it('should exit with code 0', async () => {
     process.kill(process.pid, 'SIGTERM'); // the code killed my jest process immediately
     expect(process.exit).toHaveBeenCalledWith(0);
 })
})

以下是错误消息:

  

npm运行测试:服务器服务器/ 测试 /server.spec.js

     

错误命令失败,退出代码为143。

我确定process.exit被模拟函数替代了,因为我曾尝试调用process.exit(0),该进程仍在运行。但是process.kill立即杀死了我的进程。

为什么会这样?

如何正确进行测试? (我想测试一下process.on('SIGTERM'))

0 个答案:

没有答案