繁体   English   中英

在 Jest 中模拟 execSync

[英]Mocking execSync in Jest

我如何模拟在 Jest 中执行子进程

const execSync = require('child_process').execSync;
//...
expect(execSync)
  .toHaveBeenCalledWith('npm install');

但实际上并没有让它在测试期间运行 npm install。

可以执行以下操作:

jest.mock("child_process", () => {
  return {
    execSync: () => "This is a test message"
  };
});

返回值可以是数字、字符串、对象或其他任何内容。 它只允许您覆盖 execsync 的实际实现。

您可以将lib mock__mocks__文件夹一起使用, __mocks__文件夹将包含将由 jest 自动加载的child_process文件夹。

只需创建一个文件

// __mocks__/child_process/index.js

module.exports = {
  execSync: jest.fn()
};

这将导出child_process的模拟实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM