2016-04-19 52 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

相關問題