我想看看一个等于'x'的值是否会导致我的函数抛出异常。我有一个单元测试,检查块是否会抛出一个异常,但是我希望仅当参数='x'时抛出异常,而不是它只是空的。我如何使用断言来做到这一点?如何在JavaScript中使用Mocha和assert.throws测试参数的值?
下面是一些代码来说明我的意思:
// 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!/);
现在,我知道,断言会失败,因为我的功能仅在颜色抛出异常= ='透明'。使用Mocha和Assert,我如何根据需要测试断言?我不想仅仅测试颜色!==未定义或某种类型。我特别想看看是否在上述特定情况下引发异常 - 这是我希望引发异常的唯一情况(因为具有空颜色,实际上在别处处理)。
你的问题不清楚。包含代码以演示您的要求 – Amit
“等于'x'的值将引发异常”值不会抛出异常,函数会这样做。 “但我希望只有当参数='x'”时抛出异常,然后告诉函数在参数为'x'时抛出异常。 –