Javascript 使用node.js的断言引发测试错误

Javascript 使用node.js的断言引发测试错误,javascript,node.js,mocha.js,Javascript,Node.js,Mocha.js,看文档时我很困惑,我们应该如何测试错误 我在index.js中有这个除法函数 function divide(dividend, divisor) { if(divisor === 0) { throw new Error('the quotient of a number and 0 is undefined'); } else { return dividend / divisor; } } 测试应该是什么样子?我知道这将是2种情况,第

看文档时我很困惑,我们应该如何测试错误

我在index.js中有这个除法函数

function divide(dividend, divisor) {
    if(divisor === 0) {
      throw new Error('the quotient of a number and 0 is undefined');
    } else {
      return  dividend / divisor;
    }
  }
测试应该是什么样子?我知道这将是2种情况,第一种是测试除法,我没有问题,但我不知道如何测试错误,如果用户通过零

我正在使用mocha和assert(节点的assert)


实现代码如下所示:

  divide(dividend, divisor) {
    if (divisor === 0) {
      throw new Error('the quotient of a number and 0 is undefined');
    } else {
      return dividend / divisor;
    }
  },
it("returns an exception when the divisor is 0", () => {
  const dividend = 8;
  const divisor = 0;
  expected = Error;

  const exercise = () => Calculate.divide(dividend, divisor);

  assert.throws(exercise, expected);
})
测试代码如下所示:

  divide(dividend, divisor) {
    if (divisor === 0) {
      throw new Error('the quotient of a number and 0 is undefined');
    } else {
      return dividend / divisor;
    }
  },
it("returns an exception when the divisor is 0", () => {
  const dividend = 8;
  const divisor = 0;
  expected = Error;

  const exercise = () => Calculate.divide(dividend, divisor);

  assert.throws(exercise, expected);
})

这是根据nodejs

assert.throws
try/catch
assert
true/false(catch块中为true)确定的。