Piszę test z użyciem Enzyme dla React.Testy enzymatyczne w reakcji, Nie można odczytać właściwości "have" z undefined
Mój test jest niezwykle prosta:
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);
});
});
Kod ten jest w zasadzie pobierane bezpośrednio z airbnb/enzyme docs, ale zwraca błąd:
FAILED TESTS:
<OffCanvasMenu />
✖ contains 5 <Link /> components
Chrome 52.0.2743 (Mac OS X 10.11.6)
TypeError: Cannot read property 'have' of undefined
Jestem trochę niejasna, co robię inaczej niż docs. Wszelkie wskazówki bardzo doceniane.
Dzięki za odpowiedź - widzę ten sam błąd z 'Link'. I podążam za dokumentami, chociaż kod, którego używam, importuje "spodziewać się" Michaela Jacksona i nie jestem pewien, czy to wyrzuci (sprawdziłem też dokumenty tam). – Toby
Jaką bibliotekę asercji używasz? Wypróbuj to - 'console.log ('length', wrapper.find (Link) .length);' i zobacz, co pojawia się w konsoli. –
Dodanie tej wartości spowoduje powstanie oczekiwanego wpisu w dzienniku - "5". Używam Karmy z Chai, ale z Michaelem Jacksonem [spodziewać się] (https://github.com/mjackson/expect). – Toby