测试积点老人 发表于 2018-6-22 11:59:47

Day2-5测试积点任务

问题:
should.js做测试驱动,对抛出异常的测试用例无法识别
在学习测试驱动开发编写测试用例,但是由于should.js的库的改变,以前的写法已经无法
通过了,后来查看了should.js的官网api,意思好像是这里应该用assert.js来些测试用例。


源代码里
<div><font face="微软雅黑" size="3">
</font></div><div><font face="微软雅黑" size="3">if(n > 10){</font></div><div><font face="微软雅黑" size="3">    throw new Error('n should <= 10');</font></div><div><font face="微软雅黑" size="3">}</font></div><div><font face="微软雅黑" size="3">测试代码里</font></div><div><font face="微软雅黑" size="3">
</font></div><div><font face="微软雅黑" size="3">it('should throw when n > 10', function () {</font></div><div><font face="微软雅黑" size="3">    (function () {</font></div><div><font face="微软雅黑" size="3">      main.fibonacci(11);</font></div><div><font face="微软雅黑" size="3">    }).should.throws('n should <= 10');</font></div><div><font face="微软雅黑" size="3">    //should.js3.x现在用不了了</font></div><div><font face="微软雅黑" size="3">
</font></div><div><font face="微软雅黑" size="3">});</font></div><div><font face="微软雅黑" size="3">后来在assert.js的官网上看到这样的写法</font></div><div><font face="微软雅黑" size="3">
</font></div><div><font face="微软雅黑" size="3">assert.throws(</font></div><div><font face="微软雅黑" size="3">function() {</font></div><div><font face="微软雅黑" size="3">    throw new Error("Wrong value");</font></div><div><font face="微软雅黑" size="3">},</font></div><div><font face="微软雅黑" size="3">Error</font></div><div><font face="微软雅黑" size="3">);</font></div><div><font face="微软雅黑" size="3">于是就改成这样</font></div><div><font face="微软雅黑" size="3">
</font></div><div><font face="微软雅黑" size="3">it('should throw when n > 10', function () {</font></div><div><font face="微软雅黑" size="3">
</font></div><div><font face="微软雅黑" size="3">    assert.throws(</font></div><div><font face="微软雅黑" size="3">      function () {</font></div><div><font face="微软雅黑" size="3">      throw new Error('n should <= 10');</font></div><div><font face="微软雅黑" size="3">      },</font></div><div><font face="微软雅黑" size="3">      main.fibonacci(11)</font></div><div><font face="微软雅黑" size="3">    );</font></div><div><font face="微软雅黑" size="3">});</font></div>

但是依然无效,应该怎么写这个测试用例呢?

qqq911 发表于 2018-6-26 10:50:16

你可以看下should.js和assert.js的api,找下差异

海海豚 发表于 2018-6-26 10:59:45

原因是js捕获异常时无法捕获该方法中调用的其他方法的异常,只对该方法范围内的才能捕获。

jingzizx 发表于 2018-6-26 13:07:37

只能说重新进行查询修改了

梦想家 发表于 2018-6-26 13:15:31


你可以看下should.js和assert.js的api,找下差异
页: [1]
查看完整版本: Day2-5测试积点任务