Ich habe eine Reaktionskomponente (dies ist vereinfacht, um das Problem zu demonstrieren):
class MyComponent extends Component {
handleNameInput = (value) => {
this.searchDish(value);
};
searchDish = (value) => {
//Do something
}
render() {
return(<div></div>)
}
}
Das will ich jetzt testen handleNameInput()
Anrufe searchDish
mit dem angegebenen Wert.
Dazu möchte ich eine erstellen Scherz-Mock-Funktion die die Komponentenmethode ersetzt.
Hier mein bisheriger Testfall:
it('handleNameInput', () => {
let wrapper = shallow(<MyComponent/>);
wrapper.searchDish = jest.fn();
wrapper.instance().handleNameInput('BoB');
expect(wrapper.searchDish).toBeCalledWith('BoB');
})
Aber alles, was ich in der Konsole bekomme, ist SyntaxError
:
Syntax-Fehler
at XMLHttpRequest.open (node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:458:15) at run_xhr (node_modules/browser-request/index.js:215:7) at request (node_modules/browser-request/index.js:179:10) at DishAdmin._this.searchDish (src/main/react/components/DishAdmin.js:155:68) at DishAdmin._this.handleNameInput (src/main/react/components/DishAdmin.js:94:45) at Object.<anonymous> (src/main/react/tests/DishAdmin.test.js:122:24)
Meine Frage ist also, wie ich Komponentenmethoden mit Enzymen richtig verspotte?
Was ist der Syntaxfehler?
– David Newton
24. Januar 2017 um 14:16 Uhr
Zur Frage hinzugefügt 🙂
– Miha Šušteršič
24. Januar 2017 um 14:17 Uhr
Ohne genau zu wissen, was die Quelle ist, ist es unmöglich zu helfen – ich sehe keine Syntaxfehler in dem von Ihnen geposteten Code.
– David Newton
24. Januar 2017 um 15:10 Uhr
der Syntaxfehler kommt von wrapper.searchDish = jest.fn(); Nach dem Ändern dieser Zeile erscheint der Fehler nicht mehr, daher vermute ich, dass die Mock-Funktion nicht richtig zugewiesen wird. Aber ich weiß nicht, was der richtige Weg ist und ob dieser überhaupt verfügbar ist. Daher die Frage
– Miha Šušteršič
24. Januar 2017 um 15:26 Uhr
Ich verstehe nicht, warum eine Funktion namens
searchDish
wird hier angerufen. Im Beispiel gibt es keine Methode mit diesem Namen. Wie kamen wir vonsearchValue()
zusearchDish()
?– Flugass
28. März 2018 um 14:20 Uhr