如何使用 fs.readFileSync 为函数编写 Jest 单元测试

How to write Jest Unit Test for function with fs.readFileSync

所以我在AuthService.js

中有这个功能

AuthService.js

我写了这些测试来测试这个功能

AuthService.test.js

前 2 个测试成功运行,但第 3 个失败并显示此错误。

无法登录,请检查您的凭据!

  60 |       };
  61 |     }
> 62 |     throw new Error('Unable to login, please check your crediential!');
     |           ^
  63 |   }
  64 |
  65 |   async verifyStaff(payload) {

你需要模拟 fs.readFileSync 以便在你的测试中你可以告诉模拟 return 预期的结果(你可能不希望你的单元测试实际与你的文件系统对话).

你可以用开玩笑的 mock 函数来做到这一点:

jest.mock('fs');

那么像 readFileSync 这样的导入函数将是一个 jest.Mock 支持 readFileSync.mockReturnValue("a test file");:

https://jestjs.io/docs/mock-functions