为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 mocha 对错误异常进行单元测试?

如何使用 mocha 对错误异常进行单元测试?

心有法竹 2021-10-21 10:36:16
假设我有这个功能: try {    if (s1 <0 || s2<0 ||s3 <0){            throw new Error('InvalidTriangleExeption ');    }    let  s = (s1 + s2 + s3)/2;    var area =  Math.sqrt(s*((s-s1)*(s-s2)*(s-s3)));    return area;    } catch{        throw new Error('InvalidTriangleExeption '); }}我正在尝试编写一个 mocha 单元测试:expect( question3(-1,4,5)).to.throw('InvalidTriangleExeption')但是我的测试因错误而崩溃: Error: InvalidTriangleExeption       at go (src/questions/question3.js:13:15)      at Context.<anonymous> (tests/question3.spec.js:14:13)如何为确认抛出异常的 mocha 测试编写断言?
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

你可以绑定args来解决这个问题


expect(question3.bind(this, -1, 5, 4)).to.throw(); // PASS

expect(question3.bind(this, -1, 5, 4)).to.throw('InvalidTriangleExeption'); // PASS

expect(question3.bind(this, -1, 5, 4)).to.throw('ABCExeption'); // FAIL


expect(question3.bind(this, -1, 5, 4)).to.not.throw('InvalidTriangleExeption'); // FAIL

expect(question3.bind(this, -1, 5, 4)).to.not.throw('ABCExeption'); // PASS

expect(question3.bind(this, -1, 5, 4)).to.not.throw(); // FAIL


查看完整回答
反对 回复 2021-10-21
  • 1 回答
  • 0 关注
  • 332 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号