2013-07-29 57 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:是的,当然有可能。 我应该提供一些代码示例吗? –

相关问题