2016-06-16 45 views
0

運行使用Jasmine框架創建的JavaScript自動化測試時,有沒有區分錯誤和失敗的方法(類似於JUnit的工作方式)?JavaScript中的錯誤與失敗Jasmine框架

我有一個接收和兩數相乘功能,首先我要送兩個實際的數字,之後我將送一個字符串,該函數將失敗:

it('properly multiply two numbers', function() { 
    result = Multiply(10, 5); 
    expect(result).toEqual(50); 
}); 

it('throw an error if a parameter is not a number', function() { 
    result = Multiply(10, 'aaa'); // should this line generate an error or a failure? 
    expect(result).toEqual(50); 
}); 

當我運行測試,茉莉花報告說它是失敗的,它不應該是一個錯誤嗎?

enter image description here

回答

2

它失敗,因爲錯誤是意外。 嘗試以下操作:

expect(function() { Multiply(10, 'aaa'); }).toThrow("Error: not a number.");

+0

當我使用該行我得到這個消息:「功能,如果一個參數不是一個數字拋出一個錯誤」。即使這是一個錯誤,它被報告爲失敗,所以,像JUnit一樣,在失敗和錯誤之間沒有概念劃分,至少不是他們如何報告,對嗎? – CJ1

+0

您需要在句子後添加句點,我沒有注意到錯誤的時間段。關於你的其他問題;在發生意外錯誤或預期失敗時都會發生故障,所以它與JUnit有點不同。然而,看着日誌記錄,你可以很快看到它爲什麼失敗。 – Jelle

相關問題