私はReactにEnzymeを使ってテストを書いています。React enzyme testing、不明のプロパティ 'have'を読み取ることができません
私のテストは非常に簡単です:
import OffCanvasMenu from '../index';
import { Link } from 'react-router';
import expect from 'expect';
import { shallow, mount } from 'enzyme';
import sinon from 'sinon';
import React from 'react';
describe('<OffCanvasMenu />',() => {
it('contains 5 <Link /> components',() => {
const wrapper = shallow(<OffCanvasMenu />);
expect(wrapper.find(<Link />)).to.have.length(5);
});
});
このコードは、基本的にairbnb/enzyme docsから直接取得されますが、エラーが返されます:私がやっているものに、私は少し不明確だ
FAILED TESTS:
<OffCanvasMenu />
✖ contains 5 <Link /> components
Chrome 52.0.2743 (Mac OS X 10.11.6)
TypeError: Cannot read property 'have' of undefined
をドキュメントとは異なります。どんな指針も大変ありがとう。代わりに<Link />
の
応答ありがとう - 私は 'リンク'と同じエラーが表示されます。私はコードをマイケルジャクソンの 'expect'を使用しているが、私はそれを捨てているかどうかは分からないが(私はそこにもドキュメントをチェックしている)、私はドキュメントに従っている。 – Toby
どのアサーションライブラリを使用していますか? これは 'console.log( 'length'、wrapper.find(Link).length);'を試し、コンソールに表示される内容を見てください。 –
これを追加すると、ログに期待されるエントリ "5"が生成されます。私はチャイと共にカルマを使用していますが、マイケル・ジャクソンの[期待](https://github.com/mjackson/expect)と一緒に使っています。 – Toby