由于在React项目中使用 mapbox-gl 而发生此问题。
我知道有this之类的解决方案,但是由于我是一名初中生,所以我无法完全理解应该怎么做。
我没有任何setupTest.js
或jest.stubs.js
创建它们似乎对我的测试套件无济于事。我为此项目使用ftw-hourly ,并添加了 mapbox-gl 和 @ mapbox / mapbox-gl-geocoder 作为依赖项。
有人可以指导我如何解决这个问题吗?
答案 0 :(得分:1)
这里有一个重要的区别。发生此问题是因为您的测试正在调用Icon
,但这不是因为您无法测试使用mapbox-gl
的事物。
问题是您需要正确模拟依赖项,以免它们干扰您实际上要测试的行为。我鼓励您阅读有关Jest的支持的Jest文档:https://jestjs.io/docs/en/mock-functions
请简要说明一下您的问题以及我所了解的解决方案:
mapbox-gl
的函数mapbox-gl
mapbox-gl
调用正常运行所必需的所有上下文-因此它引发错误并且您的测试失败那么您如何解决呢?通过为mapbox-gl
创建一些替代逻辑,以便您的测试不会尝试使用真实的东西。
好消息是,这是开发人员在编写测试时遇到的常见问题,大多数测试工具(尤其是mapbox-gl
)都支持这种称为模拟/存根的概念,您可以在其中告诉jest
“嘿,不要在运行此测试时调用jest
,而应使用此小备用功能。”
答案 1 :(得分:0)
如果您使用Create React App来构建应用程序,则可以在此处使用documneted之类的setupTest.js文件:https://create-react-app.dev/docs/running-tests/#initializing-test-environment
我遇到了同样的问题,只是将window.URL.createObjectURL = () => {}
添加到setupTests.js。