如何使用 Mocha 和 JavaScript 中的 assert.throws 测试参数的值?

How to test the value of an argument using Mocha and assert.throws in JavaScript?

我想看看等于 'x' 的值是否会导致我的函数抛出异常。我有一个单元测试来检查一个块是否会抛出异常,但我希望仅当参数 = 'x' 时才抛出异常,而不是如果它只是空的。我如何使用断言来做到这一点?

下面是一些代码来说明我的意思:

// Some function to check if a color is not transparent.
function checkColor(color) {
  if (color == 'transparent') {
    throw new TypeError('cant have transparent colors!');
  } else {
    return color;
  }
}

这是断言:

assert.throws(checkColor, /cant have transparent colors!/);

现在,我知道断言会失败,因为我的函数仅在颜色 == 'transparent' 时才会抛出异常。使用 Mocha 和 Assert,我如何根据需要测试断言?我不想仅仅测试 color !== undefined 或者是某种类型。我特别想看看是否在上述特定情况下引发了异常 - 这是我希望引发异常的唯一情况(因为具有空颜色,实际上在其他地方处理)。

assert.throw(function() { iThrowError(argument) }, Error)

现在只需确保参数 = x;