should.js做测试驱动,对抛出异常的测试用例无法识别

qianjiahao
  • 8.4k

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

源代码里

if(n > 10){
    throw new Error('n should <= 10');
}

测试代码里

it('should throw when n > 10', function () {
    (function () {
        main.fibonacci(11);
    }).should.throws('n should <= 10');
    //should.js  3.x  现在用不了了

});

后来在assert.js的官网上看到这样的写法

assert.throws(
  function() {
    throw new Error("Wrong value");
  },
  Error
);

于是就改成这样

it('should throw when n > 10', function () {

    assert.throws(
      function () {
        throw new Error('n should <= 10');
      },
      main.fibonacci(11)
    );
});

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

回复
阅读 2.6k
1 个回答
✓ 已被采纳
    assert.throws(
      function () {
        main.fibonacci(11);
      },
      Error
    );

如果用assert的话,应该要这么写吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏