首页 > 解决方案 > 在 Jest/Enzyme 单元测试中最近更新后无法访问以前的 DOM 元素

问题描述

我正在使用 Jest 和 Enzyme 对我的应用程序进行单元测试。我曾经这样测试它:

const textFieldWrapper= shallow(<TextField label="Standard" />);
expect(textFieldWrapper.find('input').length).toEqual(1);

现在,返回的 DOM 似乎是:

<ContextConsumer>
   [function]
</ContextConsumer>

而且我无法再访问输入了。

我的问题是,如何使用这个新渲染的 DOM 访问输入值?

包.json:

"devDependencies": {
    "@types/enzyme": "^3.1.14",
    "@types/enzyme-adapter-react-16": "^1.0.3",
    "@types/jest": "^23.0.0",
    "@types/react": "^16.3.16",
    "@types/react-dom": "^16.0.5",
    "@types/react-router-dom": "^4.2.6",
    "enzyme": "^3.6.0",
    "enzyme-adapter-react-16": "^1.5.0",
    "react-test-renderer": "^16.3.0"
  },
 "dependencies": {
    "office-ui-fabric-react": "^6.71.0",
    "react": "^16.5.2",
    "react-dom": "^16.5.2",
    "react-router-dom": "^4.3.1",
  }

标签: jestjsenzymeoffice-ui-fabric

解决方案


我认为您正在寻找mount,而不是shallow

Mount 实际上完全渲染了组件,而 shallow 只查看了没有内部属性的组件。


推荐阅读