我已经使用deno在Typescript中编写了一个小型的WebSocket Server类。
现在,我想测试一下。当我运行服务器并关闭它时,一切都很好。
但是当我尝试通过new WebSocket("ws://{myserver}")
连接到测试用例中的服务器时,我得到以下错误:
测试用例泄露了安全操作。
我的代码:
Deno.test("run server", (): void => {
const serverConfig = {
autoServe: true,
host: "localhost",
port: 3045,
};
const server = new WSServer(serverConfig);
console.log(server);
const conn = new WebSocket("ws://localhost:3045");
conn.send("hello");
conn.close();
assertEquals<number>(server.config.port, serverConfig.port);
assertEquals<boolean>(server.listening, true);
server.close();
});
字符串
有什么解决办法吗?
2条答案
按热度按时间8zzbczxx1#
我找到了解决这个问题的方法。我必须等待WebSocket连接打开。但是当我在连接上发送一些东西并关闭连接时,它不会发送数据,我必须关闭连接,因为否则Deno会给我错误,
测试用例泄漏了安全操作
所以我在我的服务器代码中实现了,它向每个发送的数据发送一个答案。
在工作服务器上,我将发送一个带有唯一代码的确认消息。
因此,对于测试用例(目前,它不对确认消息做任何事情,只侦听来自服务器的任何消息),我现在有:
字符串
我希望这对某人有帮助。
lsmd5eda2#
https://deno.land/x/[email protected]
SugarWs
您可以尝试使用此帮助程序来简化此类问题的解决方案,特别是在测试中。