2016-08-04 32 views
0

Ich habe einfache Intro-Komponente in React.js, die ein h1 und ein p macht.ReactJS & Enzyme: Übereinstimmende Elemente Inhalt zu String

Ich versuche, einen Test für die bestandenen h1 & p Strings mit Enzym schreiben, aber ich bin nicht in der Lage, dies zu tun. Was ist falsch an diesem Code?

it('description of element is okay <p>',() => { 
    const wrapper = shallow(<Intro title="Heading of element" description="Description of element" />); 
    expect(wrapper.find('p').text().to.contain("Description of element")); // This is not working! 
}); 

Wenn ich die wrapper.find('p').text() Konsolprotokoll es nicht undefiniert ist ... Und doch ist die Konsole sagt so:

1) (Component) Intro contains a single <p>: 
TypeError: Cannot read property 'contain' of undefined 
    at Context.<anonymous> (test/components/alerts/alert.spec.js:19:12) 

Antwort

3

Wahrscheinlich Behauptung sollte wie folgt aussehen:

expect(wrapper.find('p').text()).to.contain('Description of element') 

expect Werke wie:

expect(something).to.do.something 
1

Sie rufen .to.contain auf dem Enzym-Wrapper, nicht auf dem Expect-Objekt. Anstatt also diese:

expect(wrapper.find('p').text().to.contain("Description of element")); 

sollten Sie haben:

expect(wrapper.find('p').text()).to.contain("Description of element");