Ich schreibe einen Test mit Enzyme für React.Reaction enzyme testing, Kann Eigenschaft 'have' von undefined nicht lesen
Mein Test ist extrem einfach:
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);
});
});
Dieser Code ist im Grunde direkt von airbnb/enzyme docs genommen, aber gibt den Fehler:
FAILED TESTS:
<OffCanvasMenu />
✖ contains 5 <Link /> components
Chrome 52.0.2743 (Mac OS X 10.11.6)
TypeError: Cannot read property 'have' of undefined
ich auf ein wenig unklar bin, was ich tue anders als die Dokumente. Jede Anleitung sehr geschätzt.
Danke für die Antwort - Ich sehe den gleichen Fehler mit 'Link'. Und ich folge den Dokumenten, obwohl der Code, den ich benutze, Michael Jacksons "expect" importiert, und ich bin mir nicht sicher, ob das den Unterschied macht (ich habe die Dokumente auch dort überprüft). – Toby
Welche Assertion-Bibliothek verwenden Sie? Probieren Sie dies aus - 'console.log ('length', wrapper.find (Link) .length);' und sehen Sie, was in der Konsole angezeigt wird. –
Wenn Sie dies hinzufügen, wird der erwartete Eintrag im Protokoll "5" erstellt. Ich benutze Karma mit Chai, aber mit Michael Jackson [erwarten] (https://github.com/mjackson/expect). – Toby