首页 > 解决方案 > DOM 节点和 javascript 命名空间有什么关系?

问题描述

在这个例子中,为什么变量foo不引发 a ReferenceError?没有变量声明,但在渲染 DOM 后它显然在范围内。DOM 节点 id 和 javascript 命名空间之间有什么关系?我正在运行这个jest

import React from 'react';
import { render } from '@testing-library/react'

test('renders a div', () => {
  const { utils } = render(<div id="foo"/>)
  expect(foo).toBe(true)
})

笑话报告:

Expected: true
Received: <div id="foo" />

我真的希望测试会崩溃,因为在我的真实示例中,我不小心将一个未定义的变量传递给expect(),它恰好共享了渲染的 DOM 节点 id 的名称。

标签: javascriptreactjsjestjsjsdomreact-testing-library

解决方案


具有 id 的元素成为全局变量

不是同一个问题,但您的问题的答案是另一个 SO 问题:

带有 id 的 DOM 树元素会成为全局变量吗?


推荐阅读