Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么酶找不到';tr';在桌子上?_Javascript_Reactjs_Enzyme - Fatal编程技术网

Javascript 为什么酶找不到';tr';在桌子上?

Javascript 为什么酶找不到';tr';在桌子上?,javascript,reactjs,enzyme,Javascript,Reactjs,Enzyme,我正在用酶写一些测试,但我有一些奇怪的行为。这是我的测试: import React from 'react' import { TypeTable } from 'routes/Type/components/TypeTable' import { shallow } from 'enzyme' import { Table } from 'react-toolbox' // ... let _props, _wrapper beforeEach(() =&g

我正在用酶写一些测试,但我有一些奇怪的行为。这是我的测试:

  import React from 'react'
  import { TypeTable } from 'routes/Type/components/TypeTable'
  import { shallow } from 'enzyme'
  import { Table } from 'react-toolbox'

  // ...

  let _props, _wrapper

  beforeEach(() => {
    _props = {
      getTypes: sinon.spy(),
      types: [
        { name: 'type 1'},
        { name: 'type 2'}
      ]
    }
    _wrapper = shallow(<TypeTable {..._props} />)
  })

  it('Should render a <Table>', () => {
    expect(_wrapper.is(Table)).to.be.true
  })

  it('should render 2 rows', () => {
    expect(_wrapper.find('tbody').find('tr')).to.have.length(2)
  })
这似乎是正常的,其中包含几个
tr


我遗漏了什么吗?

shallow
不会“呈现”子组件。它用于测试单个组件,而不是其子组件。我认为使用
mount
而不是shallow可以让你测试你想要的东西

浅层渲染有助于约束您将组件作为一个单元进行测试,并确保您的测试不会间接断言子组件的行为


好的,但是
\u wrapper.html()
返回正确的html是否正常?是的。“浅”和“山”的区别有时有点令人困惑。当我遇到问题时,我通常会在它们之间进行检查/切换。例如,当我想测试如何将道具传递给子组件而不是实际输出时,我通常使用mountcareful@Amida谢谢你,伙计!
'<table data-react-toolbox="table">
  <thead>
    <tr>
      <th>name</th>
    </tr>
  </thead>
  <tbody>
    <tr data-react-toolbox-table="row">
      <td>type 1</td>
    </tr>
    <tr data-react-toolbox-table="row">
      <td>type 2</td>
    </tr>
  </tbody>
</table>'