Bei Ihren node.js-Tests treten bei der Verwendung von „expect.to“ von Chai Schwierigkeiten auf .throw, um ausgelöste Fehler zu erkennen. Die Tests schlagen durchweg fehl und melden den ausgegebenen Fehler. Wenn Sie den Test jedoch in einen Try-Catch-Block kapseln und den erfassten Fehler bestätigen, ist der Test erfolgreich.
Funktioniert Expect.to.throw nicht wie erwartet?
Um dieses Problem zu beheben, müssen Sie eine zu erwartende Funktion übergeben, nicht das Ergebnis des Funktionsaufrufs:
expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.'); expect(model.get.bind(model, 'z')).to.throw(new Error('Property does not exist in model schema.'));
In Ihrem Original Ansatz, Sie haben das Ergebnis des Aufrufs von model.get('z') erwartet. Um zu testen, ob eine Funktion einen Fehler auslöst, müssen Sie eine Funktion bereitstellen, damit sich Expect selbst aufruft. Die Bindungsmethode erstellt eine neue Funktion, die beim Aufruf model.get mit den erwarteten Argumenten aufruft.
Weitere Erläuterungen zur Bindungsmethode finden Sie in der bereitgestellten Dokumentation.
Das obige ist der detaillierte Inhalt vonWarum kann „expect.to.throw' ausgelöste Fehler in Mocha/Chai-Tests nicht abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!