Yanıtlar:
İçin beklemek , .equal
yerine kendi verilerine göre nesneleri karşılaştırabilir ve sizin durumunuzda iki farklı diziler olduğunu edecektir.
.eql
Değerleri derinlemesine karşılaştırmak için kullanın . Bu bağlantıya göz atın .
Ya da .deep.equal
aynı 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 ).