ich ein Beispiel hier bin ändern:React Testen Komponente mit Enzyme ändern prop
https://github.com/airbnb/enzyme/blob/master/docs/api/ReactWrapper/setProps.md
class Foo extends React.Component {
render() {
return (
<input className={this.props.name} type="text" value={this.props.name} onChange={()=>{}} />
);
}
}
it('should pass and does not',()=> {
const wrapper = mount(<Foo name="foo" />);
expect(wrapper.find('.foo').html()).toBe(`<input class="foo" type="text" value="foo">`);
wrapper.setProps({ name: 'bar' });
expect(wrapper.find('.bar').html()).toBe(`<input class="bar" type="text" value="bar">`);
});
Result: Expected '<input class="bar" type="text" value="foo">' to be '<input class="bar" type="text" value="bar">'.
Sie aus dem Ergebnis des Tests sehen, dass das Attribut classname korrekt auf prop Änderung aktualisiert wurde. Der Wert der Eingabe bleibt jedoch falsch auf 'foo' eingestellt.
Irgendwelche Ideen, wie ich diesen Wert geltend machen kann, wurde auf der Komponente richtig geändert, die neue Stützen zu einem Wertattribut auf einer Eingabe empfängt?
einfach eine Anmerkung, die OP ist mit mount, nicht flach, so dass die richtigen Dokumente sollten http://airbnb.io/enzyme/docs/api/ReactWrapper /update.html; Eine weitere Anmerkung ist, dass setProp für mount ein zweites Callback-Argument benötigt, das ausgeführt wird, nachdem die Operation abgeschlossen wurde: 'setProps (someProps, callback)' (ref: http://airbnb.io/enzym/docs/api/ReactWrapper/ setProps.html) – nbkhope