Javascript 木偶演员-模拟网袋
有可能在《木偶演员》中模拟WebSocket通信吗?我在测试我的web应用程序时没有真正的后端,而是使用Javascript 木偶演员-模拟网袋,javascript,typescript,websocket,mocking,puppeteer,Javascript,Typescript,Websocket,Mocking,Puppeteer,有可能在《木偶演员》中模拟WebSocket通信吗?我在测试我的web应用程序时没有真正的后端,而是使用on-requesthandler模拟Ajax调用。但我必须测试服务器响应WebSocket事件的行为。我不知道如何实现这一点。我正在使用以下内容模拟《木偶演员》中的WebSocket。 这将保留旧的侦听器,并提供一个排序存根,以允许测试触发WebSocket侦听器(分配给onmessage)。可能有一个更详细的存根,但我还不需要它 browser.on('targetchanged', as
on-request
handler模拟Ajax调用。但我必须测试服务器响应WebSocket事件的行为。我不知道如何实现这一点。我正在使用以下内容模拟《木偶演员》中的WebSocket
。
这将保留旧的侦听器,并提供一个排序存根,以允许测试触发WebSocket
侦听器(分配给onmessage
)。可能有一个更详细的存根,但我还不需要它
browser.on('targetchanged', async target => {
const targetPage = await target.page();
const client = await targetPage.target().createCDPSession();
await client.send('Runtime.evaluate', {
expression: `
window.document.addEventListener("DOMContentLoaded", function () {
// Track old 'WebSocket'
window.__WebSocket = window.WebSocket;
window.WebSocket = function () {
return {
// Listener - triggered by tests.
onmessage: function () {},
// Send event to "backend" - not really used by tests.
send: function () {
console.log(arguments);
}
};
};
});
`,
});
});
我正在使用下面的代码来模拟《木偶戏》中的
WebSocket
。
这将保留旧的侦听器,并提供一个排序存根,以允许测试触发WebSocket
侦听器(分配给onmessage
)。可能有一个更详细的存根,但我还不需要它
browser.on('targetchanged', async target => {
const targetPage = await target.page();
const client = await targetPage.target().createCDPSession();
await client.send('Runtime.evaluate', {
expression: `
window.document.addEventListener("DOMContentLoaded", function () {
// Track old 'WebSocket'
window.__WebSocket = window.WebSocket;
window.WebSocket = function () {
return {
// Listener - triggered by tests.
onmessage: function () {},
// Send event to "backend" - not really used by tests.
send: function () {
console.log(arguments);
}
};
};
});
`,
});
});