酵素测试容器

时间:2018-12-11 16:44:02

标签: javascript reactjs ecmascript-6 jestjs enzyme

测试容器中存在的组件/元素是否有意义?

我有这个节点

<div className="App">
  <input type="text" onChange={[undefined]} />
  <button onClick={[undefined]}>
    Add
  </button>
</div>

但是为什么测试失败了?

const wrapper = shallow(<App />);
console.log(wrapper.debug())
expect(
  wrapper.contains('<input type="text" onChange={()=>{}} />')
).toBeTruthy();

https://codesandbox.io/s/rjl3p727wm

1 个答案:

答案 0 :(得分:1)

有两个原因:

  1. contains函数希望传入一个或多个ReactNode而不是选择器,这意味着我们必须删除引号。
  2. ()=>{}不等于App组件内部的值undefined

合并这些更改:

expect(
  wrapper.contains(<input type="text" onChange={undefined} />)
).toBeTruthy();

A fork of codesandbox