Mocha/Chai explore.to.throw: Verstehen, wie es funktioniert
Beim Testen ist es entscheidend, sicherzustellen, dass Fehler wie erwartet ausgelöst werden . Allerdings stoßen Benutzer bei Chais „expect.to.throw“ häufig auf Probleme, da die ausgegebenen Fehler nicht korrekt abgefangen werden. Sehen wir uns genauer an, warum dies auftritt und wie man es beheben kann.
Das Problem entsteht, wenn das Ergebnis eines Funktionsaufrufs direkt an „expect.to.throw“ übergeben wird. Erwarten Sie beispielsweise(model.get('z')).to.throw(...). In diesem Fall basieren Sie auf dem Rückgabewert von model.get('z') und nicht auf der tatsächlichen Auslösung eines Fehlers.
Um dieses Problem zu beheben, müssen Sie eine Funktion übergeben, die einen Aufruf erwartet zu erwarten. Diese Funktion würde dann model.get mit den entsprechenden Argumenten aufrufen. Betrachten Sie den folgenden Code:
expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.');
Hier erstellt model.get.bind(model, 'z') eine neue Funktion, die beim Aufruf model.get mit dem Argument 'z' aufruft und die auflöst Problem.
Das Verständnis dieses Verhaltens ist wichtig, um Expect.to.throw effektiv nutzen zu können. Denken Sie daran, Funktionen zu übergeben, die den erwarteten Fehler auslösen, um ein genaues Testen von Fehlerbehandlungsszenarien sicherzustellen.
Das obige ist der detaillierte Inhalt vonWarum kann „expect.to.throw' ausgelöste Fehler in Chai nicht abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!