【发布时间】:2019-01-27 22:32:24
【问题描述】:
我正在使用命令 jest 为我的 react-native 应用程序运行我的测试套件。
测试将在文件jest-runtime/build/index.js 中失败
const wrapper = this._environment.runScript(transformedFile.script)[
(_script_transformer || _load_script_transformer()).default.EVAL_RESULT_VARIABLE];
出现错误:
TypeError: Cannot read property 'Object.<anonymous>' of null
我的笑话版本是21.2.1。
无论如何,经过一番谷歌搜索,我发现有人在运行jest --env=jsdom。我试了一下,然后我的测试套件开始工作了。
但是这个选项是什么意思呢?
我知道jsdom 是 DOM 和 HTML 标准的实现。
但这玩笑有什么用呢? 这如何改变 jest 的行为以使现在测试通过?
【问题讨论】:
-
您是否覆盖了
testEnvironment属性? jestjs.io/docs/en/configuration#testenvironment-string。这将更改使用的默认jsdom库。 CLI 具有更高的优先级,并会覆盖该值并使其工作。 Jsdom 是必需的,因为它是用于测试组件的无头浏览器。 -
如果你在 react 中工作,它会更新虚拟 dom,而不是真实 dom。开玩笑没有反应,我认为这只是从什么 dom 读取的额外信息。但是,我不能说这是 100% 确定的..
标签: javascript react-native jestjs jsdom