簡體   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