Mengapa yang berikut gagal?
expect([0,0]).to.equal([0,0]);
dan apa cara yang tepat untuk mengujinya?
Seperti yang diharapkan , .equal
akan membandingkan objek daripada data mereka, dan dalam kasus Anda itu adalah dua array yang berbeda.
Gunakan .eql
untuk membandingkan nilai-nilai secara mendalam. Lihat tautan ini .
Atau Anda dapat menggunakan .deep.equal
untuk mensimulasikan sama dengan .eql
.
Atau dalam kasus Anda, Anda mungkin ingin memeriksa .members
.
Untuk menegaskan, Anda dapat menggunakan .deepEqual
, tautan .
.deepEqual()
( chaijs.com/api/assert ).to.deep.equal(['a','b'])
sepertinya tidak berfungsi. Namunto.have.all.members(['a','b'])
demikian. sangat rumit ...Cobalah untuk menggunakan Equal dalam. Ini akan membandingkan array bersarang serta bersarang Json.
Silakan merujuk ke situs dokumentasi utama .
sumber
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
Ini adalah cara menggunakan chai untuk menguji secara mendalam array asosiatif.
Aku punya masalah mencoba untuk menegaskan bahwa dua asosiatif array yang sama. Saya tahu bahwa ini seharusnya tidak benar-benar digunakan dalam javascript tapi saya menulis tes unit di sekitar kode lama yang mengembalikan referensi ke array asosiatif. :-)
Saya melakukannya dengan mendefinisikan variabel sebagai objek (bukan array) sebelum pemanggilan fungsi saya:
sumber