私はenzyme
を使っていくつかのテストを書いていますが、私は奇妙な動作をしています。ここに私のテストがあります:なぜ酵素はテーブルで 'tr'を見つけられないのですか?
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)
})
最初のテストが動作しています。二つ目は、動作していない(アサーションが失敗している:expected { Object (root, unrendered, ...) } to have a length of 2 but got 0
)
をしかし、私は私の_wrapper
の内容を印刷する場合、私の第二の試験では、私が取得console.log(_wrapper.html())
を使用して[OK]を、どのように思わ
'<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>'
いくつか含まれていますtr
。
私は何かを忘れましたか?
これは正常ですが、 '_wrapper.html()'は私に正しいhtmlを返しますか? – ThomasThiebaud
はい。浅いとマウントの違いは時々混乱します。私が問題を抱えているとき、私は通常それらをチェック/切り替えます。 たとえば、私は通常、実際の出力の代わりに子コンポーネントに小道具がどのように渡されるかをテストするときにmountを使用します。 – Amida
ありがとう、私は慎重になるでしょう – ThomasThiebaud