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是框架不可知论者)。