Последний модульный тест в следующем коде завершается неудачей, возможно, потому, что оператор ==
, который используется equals()
, не сравнивает массивы должным образом. Однако я не могу понять, почему это происходит.
Почему equals()
дает сбой при сравнении массива, извлеченного из SC.Record
, с недавно созданным массивом?
monster_model.js
BagOfTricks.Monster = SC.Record.extend(
{
name: SC.Record.attr(String, { defaultValue: 'Unspecified' }),
level: SC.Record.attr(Number, { defaultValue: 0 }),
keywords: SC.Record.attr(Array, { defaultValue: function() { return [ 'Unspecified' ] } })
}
);
monster_test.js
var defaultMonster;
module("BagOfTricks.Monster", {
setup: function() {
defaultMonster = BagOfTricks.store.createRecord( BagOfTricks.Monster, {} );
},
teardown: function() {
BagOfTricks.store.reset();
}
}
);
test("Default monster created as expected?", function() {
equals(defaultMonster.get('name'), 'Unspecified');
equals(defaultMonster.get('level'), 0);
// The following test fails.
var defaultKeywordArray = ['Unspecified'];
equals(defaultKeywordArray, defaultMonster.get('keywords'));
}
);