Heim > Web-Frontend > js-Tutorial > Warum kann „expect.to.throw' ausgelöste Fehler in Mocha/Chai-Tests nicht abfangen?

Warum kann „expect.to.throw' ausgelöste Fehler in Mocha/Chai-Tests nicht abfangen?

Linda Hamilton
Freigeben: 2024-11-17 11:53:01
Original
836 Leute haben es durchsucht

Why Does `expect.to.throw` Fail to Catch Thrown Errors in Mocha/Chai Tests?

Mocha/Chai „expect.to.throw“ fängt ausgelöste Fehler nicht ab?

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.'));
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage