Dlaczego poniższe błędy nie działają?
expect([0,0]).to.equal([0,0]);
i jaki jest właściwy sposób, aby to sprawdzić?
Dla spodziewać , .equal
będzie porównanie obiektów zamiast ich danych, aw twoim przypadku to dwie różne tablice.
Użyj .eql
, aby głęboko porównać wartości. Sprawdź ten link .
Lub możesz użyć .deep.equal
do symulacji tego samego jak .eql
.
Lub w twoim przypadku możesz chcieć to sprawdzić .members
.
W przypadku stwierdzeń, których możesz użyć .deepEqual
, link .
.deepEqual()
( chaijs.com/api/assert ).to.deep.equal(['a','b'])
wydaje się nie działać. jednakto.have.all.members(['a','b'])
robi. tak kłopotliwe…Spróbuj użyć głębokiego Equal. Porówna zagnieżdżone tablice, a także zagnieżdżone Json.
Proszę odnieść się do głównej strony dokumentacji .
źródło
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
Oto jak używać chai do głębokiego testowania tablic asocjacyjnych.
Miałem problem próbuje twierdzić, że dwie asocjacyjne tablice były równe. Wiem, że tak naprawdę nie należy ich używać w javascript, ale pisałem testy jednostkowe wokół starszego kodu, który zwraca odwołanie do tablicy asocjacyjnej. :-)
Zrobiłem to, definiując zmienną jako obiekt (nie tablicę) przed wywołaniem funkcji:
źródło