所以QUnit提供了“raise”断言来测试是否抛出异常.有什么办法可以测试异常抛出的实际消息吗?例如说我有这个功能:
throwError = function(arg) { var err = new Error(); if (typeof arg === 'undefined') { err.message = 'missing parameter'; throw err; } }
我想要能够按照这些方面写点东西:@H_301_5@
raises( function(){throwError();},Error.message,'missing arg' );
理想情况下,此测试将失败,因为异常消息是“缺少参数”,我希望它是“缺少arg”,但是通过,因为qunit只检查是否引发错误.任何方式来检查抛出的异常的实际内容?@H_301_5@
解决方法
我想出了答案,张贴在这里,以防其他人觉得有用.给出这个功能:
throwError = function(arg) { var err = new Error(); if (typeof arg === 'undefined') { err.message = 'missing parameter'; throw err; } }
测试将如下所示:@H_301_5@
raises( function(){ throwError(); },function(err) { return err.message === 'missing arg'; },'optional - label for output here' );