2016-04-19 51 views
0

我想看看一个等于'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,我如何根据需要测试断言?我不想仅仅测试颜色!==未定义或某种类型。我特别想看看是否在上述特定情况下引发异常 - 这是我希望引发异常的唯一情况(因为具有空颜色,实际上在别处处理)。

+0

你的问题不清楚。包含代码以演示您的要求 – Amit

+0

“等于'x'的值将引发异常”值不会抛出异常,函数会这样做。 “但我希望只有当参数='x'”时抛出异常,然后告诉函数在参数为'x'时抛出异常。 –

回答

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

现在只要确保参数= x;

+1

呃...我是个白痴!我在几个小时前就看到了这个例子,并且完全没有考虑到这个。我会给这个镜头,我相信它会起作用。 – Jesse

相关问题