Javascript 如何模拟webview或iframe等html元素?
我试图为呈现Javascript 如何模拟webview或iframe等html元素?,javascript,reactjs,jestjs,Javascript,Reactjs,Jestjs,我试图为呈现的React组件编写一些带有Jest的单元测试。 Electron的webview标签基于Chromium的webview,这是一种iframe 每次运行测试时,当代码使用事件侦听器方法时,我都会出错。下面是我的代码: const TestComponent = (source, iframeError) => { const webviewTag = document.querySelector('webview'); webviewTag.addEventListe
的React组件编写一些带有Jest的单元测试。
Electron的webview标签基于Chromium的webview,这是一种iframe
每次运行测试时,当代码使用事件侦听器方法时,我都会出错。下面是我的代码:
const TestComponent = (source, iframeError) => {
const webviewTag = document.querySelector('webview');
webviewTag.addEventListener('plugin-crashed', (name, version) => {
console.log(`plugin-crashed: ${name}, ${version}`);
});
return (
<div className="content-body">
{iframeError
? <IframeError />
: <webivew
id="webview"
name="webivew"
src={source}
autosize
allowpopups
{...optionalAttributes}
plugins
/>
}
</div>
);
};
我如何开玩笑地嘲笑这种行为?既然没有人给出答案,我就这么做。因为我找到了一个方法。 因此,可以在
jest
中模拟global
对象,如下所示:
beforeEach(() => {
jest.resetModules();
global.document = {
querySelector: function querySelector() {
return webviewTag = {
addEventListener: jest.fn(),
};
}
};
});
让我知道,如果你可能会看到一些改进或其他方式来处理它。谢谢
beforeEach(() => {
jest.resetModules();
global.document = {
querySelector: function querySelector() {
return webviewTag = {
addEventListener: jest.fn(),
};
}
};
});