我正在开发Typescript库,并尝试使用Jest和Puppeteer编写测试。测试失败,因为ReferenceError: Blob is not defined
。我遵循了Jest和Jest-Puppeteer的“入门”部分,但是仍然遇到此问题。如果测试在浏览器中运行,如何无法定义Blob?我该怎么做才能解决这个问题?
# jest.config.js
module.exports = {
preset: 'jest-puppeteer',
transform: {
'^.+\\.ts$': 'ts-jest',
},
};
# mylibrary.ts
function doSomething() {
const blob = new Blob(...);
return blob;
}
# mylibrary.spec.ts
it('should return a blob', function(){
const b = doSomething();
...
});
答案 0 :(得分:1)
jest-puppeteer
允许您使用puppeteer
。它不会自动将您的代码(应该在浏览器内部运行)包装到浏览器中。
代码示例
以下是应如何使用jest-puppeteer
的示例:
it('...', async () => {
await page.goto('...');
});
问题修复
如果要在浏览器中测试整个网站,请使用jest-puppeteer
。然后,您将需要启动本地服务器并使用puppeteer访问您的网站。
如果要在服务器上运行客户端库,则可能要使用polyfills。您可以使用blob-polyfill
。