Leo*_*ban 1 javascript testing mocha.js chai
我的测试,在alertsvar下方是一个空数组,[]但这会引发错误。
it('FeedFactory alerts array is filled', function() {
var alerts = FeedFactory.returnAlerts();
console.log('alerts',alerts);
expect(alerts).to.equal([]);
});
Run Code Online (Sandbox Code Playgroud)
这是我注释掉最后expect(alerts).to.equal([]);一行时的测试日志。
我工厂的代码
var alerts = [];
var feedFactory = {
alerts : alerts,
getFeed : getFeed,
returnAlerts : returnAlerts,
saveFilters : saveFilters,
getFilters : getFilters
};
function returnAlerts() {
return alerts;
}
Run Code Online (Sandbox Code Playgroud)
因为[] !== [] && [] != []。JS 对象彼此之间不是松散或严格相等的,因此expect([]).to.equal([])总是会失败。
您应该使用更深层次的相等形式,例如deep(或其令人困惑的简写,eql)或members:
expect([1, 2, 3]).to.deep.equal([1, 2, 3])
expect([1, 2, 3]).to.include.members([1, 2])
Run Code Online (Sandbox Code Playgroud)