如何在JavaScript中使用Mocha和assert.throws测试参数的值?
我想看看等于“x”的值是否会导致我的函数抛出异常。我有一个单元测试来检查一个块是否会抛出异常,但是我希望只有当参数为'x'时才会抛出异常,而不是如果它只是空的。如何使用assert实现这一点 下面是一些代码来说明我的意思:如何在JavaScript中使用Mocha和assert.throws测试参数的值?,javascript,assert,Javascript,Assert,我想看看等于“x”的值是否会导致我的函数抛出异常。我有一个单元测试来检查一个块是否会抛出异常,但是我希望只有当参数为'x'时才会抛出异常,而不是如果它只是空的。如何使用assert实现这一点 下面是一些代码来说明我的意思: // Some function to check if a color is not transparent. function checkColor(color) { if (color == 'transparent') { throw new TypeEr
// 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!/);
现在,我知道断言将失败,因为我的函数只在color==“transparent”时抛出异常。使用Mocha和Assert,如何根据需要测试断言?我不想只测试颜色!==未定义或属于某种类型。我特别想看看是否在上述特定情况下引发异常——这是我唯一希望引发异常的情况(因为颜色为空,实际上在其他地方处理)
现在只需确保参数=x
现在只需确保参数=x 你的问题不清楚。包括代码以演示您的需求“等于'x'的值将引发异常”值不会引发异常,函数会。“但我希望只有当参数为'x'”时才会引发异常。然后,当参数为
'x'
时,告诉函数引发异常。您的问题不清楚。包括代码以演示您的需求“等于'x'的值将引发异常”值不会引发异常,函数会。“但是我希望只有当参数为'x'”时才会抛出异常。然后告诉函数在参数为'x'
时抛出异常。。。我是个白痴!我几个小时前就看到了这个例子,当时我完全不知所措。我会给这个机会的,我相信它会成功的。呃。。。我是个白痴!我几个小时前就看到了这个例子,当时我完全不知所措。我会给这个机会的,我相信它会成功的。
assert.throw(function() { iThrowError(argument) }, Error)