Yanıtlar:
İçin beklemek , .equalyerine kendi verilerine göre nesneleri karşılaştırabilir ve sizin durumunuzda iki farklı diziler olduğunu edecektir.
.eqlDeğerleri derinlemesine karşılaştırmak için kullanın . Bu bağlantıya göz atın .
Ya da .deep.equalaynı simüle etmek için kullanabilirsiniz .eql.
Veya sizin durumunuzda kontrol etmek isteyebilirsiniz .members .
For iddia kullanabilirsiniz .deepEqual, bağlantıyı .
to.deep.equal(['a','b'])çalışmıyor gibi görünüyor. ancak to.have.all.members(['a','b']). çok hantal ...
Derin Eşitliği kullanmaya çalışın. İç içe dizileri ve iç içe Json'u karşılaştıracaktır.
expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' });
Lütfen ana dokümantasyon sitesine bakınız .
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
İlişkilendirilebilir dizileri derinlemesine test etmek için chai bu şekilde kullanılır.
İki ilişkisel dizinin eşit olduğunu iddia etmeye çalışırken bir sorunum vardı . Bu gerçekten javascript kullanılmaması gerektiğini biliyorum ama bir ilişkili diziye bir başvuru döndürür eski kod etrafında birim testleri yazıyordum. :-)
Benim işlev çağrısından önce bir değişken (dizi değil) olarak değişken tanımlayarak yaptım:
var myAssocArray = {}; // not []
var expectedAssocArray = {}; // not []
expectedAssocArray['myKey'] = 'something';
expectedAssocArray['differentKey'] = 'something else';
// legacy function which returns associate array reference
myFunction(myAssocArray);
assert.deepEqual(myAssocArray, expectedAssocArray,'compare two associative arrays');
.deepEqual()( chaijs.com/api/assert ).