エラーが有効な場合はスローされ、そうでない場合は何もスローされないという方法でエラーを処理する関数のテキストを実行しようとしています。問題は、使用中にパラメータを設定できないように見えることです:
expect(handleError).to.throw(Error);
理想的には、次を使用することです。
expect(handleError(validError)).to.throw(Error);
この機能を実現する方法はありますか?
関数のコード:
function handleError (err) {
if (err !== true) {
switch (err) {
case xxx:
...
}
throw "stop js execution";
else {}
}
テストのコード (意図したとおりに動作しない):
it("should stop Javascript execution if the parameter isnt \"true\"", function() {
expect(handleError).to.be.a("function");
expect(handleError(true)).to.not.throw(Error);
expect(handleError("anything else")).to.throw(Error);
});