Mit Enzym versuche ich den gerenderten Text einer Komponente zu testen. Die Komponente ist ein LinkButton
, und es macht sich wie so:Wie kann ich den Text eines Kindelements im Enzym testen?
<a><button to="/projects">See list of all projects</button></a>
Ich bin nicht sicher, wie direkt die Zeichenfolge verweisen „Liste aller Projekte“. Ich teste es derzeit wie folgt:
let { link } = setup({ type: 'Project' })
link = link.shallow()
const text = link.prop('children').props.children.join('')
expect(link.prop('to')).to.eq('/projects')
expect(text).to.eq('See list of all projects')
link
kommt aus shallow(<NotFoundCard />).find(LinkButton)
.
Ich habe versucht, link.find('button')
und link.find('a')
zu verwenden, aber beide 0 Knoten zurückgeben.
bearbeiten 1
-Code für setup
:
const setup = propOverrides => {
const props = Object.assign({
children: null,
type: 'None',
}, propOverrides)
const wrapper = shallow(<NotFoundCard {...props} />)
return {
props,
wrapper,
card: wrapper.find(Card),
title: wrapper.find(CardTitle),
text: wrapper.find(CardText),
link: wrapper.find(LinkButton),
}
}
'const text = link.text()' zu diesem doc (es chai-enzyme verwendet) beziehen https://github.com/airbnb/enzyme/blob/master/docs /api/ReactWrapper/text.md –
Zeigen Sie Ihre Setup-Funktion. – FakeRainBrigand
@FakeRainBrigand: Aktualisiert. –