在webworker上测试redux/react with jest erroring



我正在使用React脚本,其中包括在redux模型上运行测试的jest(还没有使用太多React,仍在构建数据。

我使用webworker通过ajax请求获取数据。

当我运行测试时,Reference Error: Worker is not defined

我尝试安装一个worker-npm库,并通过import * as global.Worker from "webworker",但在我的测试中不包括webworker。

我想避免在我的源代码中包含webworker,因为浏览器中不需要它,但我希望它用于测试,或者如果我不测试worker代码,至少我的测试不会出错,因为文件中引用了worker。

我不熟悉react脚本,但我会说:

1) 单元测试不应该测试甚至运行外部资源(如webworker)-隔离是单元测试的关键

2) redux代码,特别是reducer不应该依赖或执行依赖外部资源或状态的代码-它们应该是纯

你还没有提供任何代码示例,所以我对你的问题来源做了很多假设。

有一个问题:你提到了"redux模型",这与redux orm之类的东西有关吗?或者你如何称你的reducers为

在任何情况下,作为第一步,我建议您将调用web工作程序(或任何外部资源)的代码移动到一个单独的文件中,并将其导入您的reducer/model中。这样你就可以很容易地模拟它,避免运行它。这让你可以控制它提供的响应,而无需实际进行外部调用。

作为一个长期的建议,我建议你研究像redux thunk或redux saga这样的东西来进行异步工作。

相关内容

  • 没有找到相关文章

最新更新