我的目标是在Angular 9应用程序中使用powerbi-client。使用这样的库,我的POC组件效果很好:
import * as pbi from 'powerbi-client'; // It's installad in package.json
但是,当我开玩笑地运行单元测试时,出现此错误:
TypeError: Cannot read property 'getRandomValues' of undefined
非常欢迎任何帮助🤷🏽♂️
我尝试在angular.json
的脚本部分下添加库,但这没有帮助:
"scripts": [
"./node_modules/powerbi-client/dist/powerbi.min.js"
],
我今天也经历过。在您的setupTests文件中,或在其他任何地方,Jest让我们设置测试配置,添加以下内容:
const crypto = require('crypto')
Object.defineProperty(global.self, 'crypto', {
value: {
getRandomValues: arr => crypto.randomBytes(arr.length)
}
})
您甚至可以将其添加到测试文件中,但不确定如何配置您的项目。希望这可以帮助。 (由于您使用的是.ts和angular,因此您可能还需要为此改变某些类型)。