如何使用Jest / React-Testing-Library模拟socket.io-client

时间:2019-10-03 02:44:13

标签: reactjs socket.io jestjs react-hooks react-testing-library

我正在构建一个聊天应用程序,并且想使用react-testing-library编写集成测试,但不知道如何模拟socket.io-client的{​​{1}},socket.on

我尝试遵循此article,并尝试使用mock-socket.iosocket.io-mock都没有运气。

这是我要测试的组件:

socket.emit

1 个答案:

答案 0 :(得分:1)

这是一个较晚的答案,但可能对其他人有用:

模拟onPostExecute库,我使用了笑话模拟函数,并使用了第三方库socket.io-client https://www.npmjs.com/package/socket.io-mock

您需要按如下所示修改连接功能,以便使用模拟套接字:

socket.io-mock

实施:

const url= process.env.NODE_ENV==='test'?'':`http://localhost:${port}`;
const socket = io(url);