开玩笑,伪娘,打字稿,ReferenceError:未定义Blob

时间:2019-09-06 12:53:53

标签: jestjs puppeteer jest-puppeteer

我正在开发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();
    ...
});

1 个答案:

答案 0 :(得分:1)

jest-puppeteer允许您使用puppeteer。它不会自动将您的代码(应该在浏览器内部运行)包装到浏览器中。

代码示例

以下是应如何使用jest-puppeteer的示例:

it('...', async () => {
    await page.goto('...');
});

问题修复

如果要在浏览器中测试整个网站,请使用jest-puppeteer。然后,您将需要启动本地服务器并使用puppeteer访问您的网站。

如果要在服务器上运行客户端库,则可能要使用polyfills。您可以使用blob-polyfill