如何使用 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;
我想看看等于 '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;