如果其中任何一个失败,测试用例将失败

时间:2015-04-29 06:20:02

标签: mocha

我正在尝试使用mocha测试用例来检查其余的api,但问题是如果我有3个测试用例并且第一个失败则休息没有执行。它最初只停止。

以下是代码:

describe('suite 1',function(){
  it('tc1',function(done){
     // some test case with failure
       should([1]).equal([]);
       done();
  })

  it('tc2',function(done){
     // some test case with success
       should([]).equal([]);
       done();
  })

})

在上面的代码中,我无法获得报告 2个测试用例。 1通过。 1失败。

它在中间失败,在这里它仅在第一个测试用例中失败。

1 个答案:

答案 0 :(得分:0)

两个测试都失败了,因为都应该失败

两个测试都失败了,因为您使用equal来检查对象身份。也就是说,它使用===来检查相等性。现在,打开一个交互式Node会话并尝试:

[] === []

你会得到false。这是因为每个新的空数组都是一个新的JavaScript对象,只有当两个数组是同一个对象时,===才会成立。

请注意,您在第一次测试时会得到您期望的结果,但不是您(可能)认为的原因。测试失败的原因与我刚才解释的相同。 should不考虑一个数组包含元素但另一个数组为空的事实。

您应该使用eql来测试阵列是否具有相同的成员。