我最近添加了对通过WebSockets订阅到我的React + Redux + ApolloGraphQL应用程序的支持。由于这样做,我不能再进行单元测试了。
我想出的问题是:
Unable to find native implementation, or alternative implementation for WebSocket!
在我运行测试的节点环境中似乎没有可用的WebSockets实现。
在this bug report中有一些建议的解决方案涉及将'ws'库用于节点,但我无法使它们工作。我无法正确加载库,或者我可以,但应用程序无法正常工作。
我正在考虑根据我所处的环境加载库的方法,但是:
有什么建议吗?
答案 0 :(得分:0)
你是如何运行测试的?在我的情况下,我正在使用Jest,所以我把setupTests
文件(在运行所有测试之前执行)放在这段代码中:
import WebSocket from 'ws';
Object.assign(global, {
WebSocket,
});
这是必要的,因为对于未在浏览器中运行的测试,没有本机Web Socket实现。