2016-12-25 72 views
2

我有一個活動,我正在爲一個學徒機會和主要工程師,我可以與此討論沒有迴應,所以我想我在這裏問。 基本上這是一個'三角'練習,主要目的是用茉莉花在TDD中書寫。Jasmine toThrow()語法

現在,我寫了簡單的,當我開始寫邊緣案例時,我無法投擲無效輸入。綜觀文檔看似簡單,但我的測試失敗,invalid thrown爲錯誤

describe('Triangle', function(){ 
var Triangle = function(x, y, z){ 
    if (x <= 0 || y <= 0 || z <= 0) { 
    throw 'invalid';} 
    if(x === y && y === z){ 
    return 'equilateral';} 
    if(x === y || x === z || y === z){ 
    return 'isosceles';} 
    else{return 'scalene';}  
}; 

    it('test triangles with no size are illegal', function() { 
    var triangle = Triangle(0,0,0); 
    expect(triangle).toThrow(); 
    }); 

}); 

回答

2

的問題是,你實際上是在調用此函數:

var triangle = Triangle(0,0,0); 

相反,你應該讓expect()通過調用它提供調用

expect(function() { Triangle(0, 0, 0); }).toThrow(); 
+0

我看到之前提及的地方,但它仍然無法 – bsem

+0

@BennySaxeman你有沒有刪除'var triangle = Triangle(0,0,0);'line? – alecxe

+0

是的,我做了,它仍然失敗 – bsem