Javascript Chai将错误记录到控制台中,而不是测试失败

Javascript Chai将错误记录到控制台中,而不是测试失败,javascript,angularjs,chai,Javascript,Angularjs,Chai,我有下面的测试代码,用于验证调用返回承诺的函数后,生成的数组是否与存根数组相同 it('Should return locations', () => { const result = loginSvc.getLocations() expect(result).to.eventually.eql(['location1', 'asd', 'location3', 'location4', 'location5']) }) loginSvc.getLocations()只

我有下面的测试代码,用于验证调用返回承诺的函数后,生成的数组是否与存根数组相同

it('Should return locations', () => {
  const result = loginSvc.getLocations()

  expect(result).to.eventually.eql(['location1', 'asd', 'location3', 'location4', 'location5'])   
})
loginSvc.getLocations()
只是一个模拟的函数,它返回一个数组:
['location1','location2','location3','location4','location5']

当我运行测试时,它不会像应该的那样失败,甚至不会以假阳性的形式成功,在控制台中,我得到以下信息:

错误日志:“未处理的承诺拒绝”,断言错误{消息:“预期[Array(5)]与[Array(5)]具有相同的成员,showDiff:true,实际:['location1','location2','location3','location4','location5',预期:['location1','asd','location3','location4','location5',堆栈:'AssertionError@ 断言@ 某种方法@ 覆盖方法包装器@ 所有方法@ 覆盖方法包装器@ 方法包装器@ 跑@ 刷新@,第243行,源URL:'}


但是测试通过了

我相信我找到了一个解决方案,或者说是一个解决办法:

it('Should return locations', done => {
  loginSvc.getLocations()
    .then(locations => {
      expect(locations ).to.eql(['location1', 'asd', 'location3', 'location4', 'location5'])
      done()
    })
    .catch(done)
})

请提供所有相关代码。没有loginSvc.getLocations。目前尚不清楚AngularJS服务是如何使用本机promise的。这个问题甚至没有提到使用了哪个测试框架(Chai是框架不可知论者)。