Ich versuche, die geworfen einen Fehler in einer Generatorfunktion wie folgt zu testen, mit Jest und Chai:Wurffehler im Generator testen?
// function
function * gen() {
yield put({ type: TIME_OUT_LOGOUT })
throw new Error('User has logged out')
}
//test
let genFunc = gen()
expect(genFunc().next).to.deep.equal(put({ type: TIME_OUT_LOGOUT }))
expect(genFunc().next).to.throw(Error('User has logged out'));
Aber es funktioniert nicht. Welches wäre der richtige Weg dies zu testen?
Es scheint nicht zu funktionieren, die tatsächlich Sinn machen, da die Generatorfunktion keinen anderen nächsten Wert hat, weil kein anderer Ertrag übrig ist. – Nicolas
Funktioniert Ihre erste Behauptung? Auf jeden Fall habe ich eine Korrektur vorgenommen. Folgendes funktioniert bei mir (mit Jasmine-Syntax): 'expect (genFunc.next(). Value) .toEqual (put ({type: TIME_OUT_LOGOUT})); expect (() => genFunc.next()). ToThrow (Fehler ('Benutzer hat sich ausgeloggt')); 'Beachten Sie die Wrapper-Funktion um' genFunc.next() 'in der zweiten Assertion. – Assan
Ok, ich habe es geschafft, die Behauptung zu ändern: expect (genFunc.next(). Value) .toEqual (put ({type: TIME_OUT_LOGOUT})); expect (() => genFunc.next()). toThrow (Fehler); Wenn Sie Ihre Antwort posten möchten, kann ich sie als Lösung markieren. Danke vielmals! – Nicolas