2013-07-29 59 views
0

我跟着Test Driven Javascript Development一起,只是設法建立了jstestdriver。運行測試失敗時,我收到奇怪的錯誤和失敗的測試消息,例如:啓用JsTestDriver失敗的測試消息並修復FailureException錯誤?

TestCase("ArrayTest", { 
    "test array splice should not modify array": function() { 
    var arr = [1, 2, 3, 4, 5]; 
    var result = arr.splice(2, 3); 
    assertEquals([1, 2, 3, 4, 5], arr); 
    } 
}); 

我失敗的測試結果相當簡潔,包括奇數FailureException錯誤:

F 
Total 1 tests (Passed: 0; Fails: 1; Errors: 0) (3.00 ms) 
    Chrome 27.0.1453.116 Mac OS: Run 1 tests (Passed: 0; Fails: 1; Errors 0) (3.00 ms) 
    ArrayTest.test array splice should not modify array failed (3.00 ms): 

null 
com.google.jstestdriver.FailureException 
    at com.google.jstestdriver.FailureCheckerAction.run(Unknown Source) 
    at com.google.jstestdriver.ActionRunner.runActions(Unknown Source) 
    at com.google.jstestdriver.JsTestDriverServer.main(Unknown Source) 

我想知道是否可以修復該故障異常,並且還會收到諸如「期望的[1,2,3,4,5]但是[1,2]」的消息,因爲該書提到您應該收到該消息。

回答

0

是的,當然有可能。

至少有兩種方式:

  1. 編寫陣列
  2. 自己的比較函數兩個數組轉換爲字符串,並比較它們與的assertEquals

例如一個字符串:

assertEquals([1, 2, 3, 4, 5] + "", arr + ""); 

要解決失敗的測試,你需要使用代替拼接

所以測試的代碼如下:

var arr = [1, 2, 3, 4, 5]; 
var result = arr.slice(2, 3); 
assertEquals([1, 2, 3, 4, 5], arr); 

如果你想有一些自定義的消息時,此斷言失敗,你可以把它寫成一個第一個參數:

assertEquals("message text", [1, 2, 3, 4, 5], arr); 
+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 –

+0

請問,如果我錯了,你能糾正我: 問:我想知道是否有可能修復該失敗異常。 A:是的,當然有可能。 我應該提供一些代碼示例嗎? –

相關問題