当使用 Jest 运行单元测试时,window.crypto API 会导致问题。我还没有找到一种在不安装其他软件包的情况下将加密合并到 Jest 中的方法,这是我无法做到的。因此,如果不使用另一个 npm 包,是否有一种方法可以测试其中使用的函数:crypto.getRandomValues() 不会使 Jest 崩溃?感谢任何链接、建议或提示

最佳答案

这应该这样做。使用以下代码全局设置 crypto 属性。这将允许 Jest 访问 window.crypto 并且不会导致任何问题。

const crypto = require('crypto');

Object.defineProperty(global.self, 'crypto', {
  value: {
    getRandomValues: arr => crypto.randomBytes(arr.length)
  }
});

关于javascript - 如何使用 Jest 测试使用 crypto 或 window.msCrypto 的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52612122/

10-13 08:59