Почему следующее не удается?
expect([0,0]).to.equal([0,0]);
и как правильно это проверить?
Для ожидать , .equal
будет сравнивать объекты , а не их данных, а в вашем случае это два разных массивов.
Используйте .eql
для того, чтобы глубоко сравнить значения. Проверьте эту ссылку .
Или вы можете использовать .deep.equal
для того, чтобы имитировать так же, как .eql
.
Или в вашем случае вы можете проверить .members
.
Для утверждает , вы можете использовать .deepEqual
, ссылку .
.deepEqual()
( chaijs.com/api/assert ).to.deep.equal(['a','b'])
не похоже на работу. однакоto.have.all.members(['a','b'])
делает. так громоздко…Попробуйте использовать глубокий Равный. Он будет сравнивать как вложенные массивы, так и вложенные Json.
Пожалуйста, обратитесь к основной документации сайта .
источник
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
Это как использовать Chai для глубокого тестирования ассоциативных массивов.
У меня была проблема, пытающаяся утверждать, что два ассоциативных массива были равны. Я знаю, что их не следует использовать в javascript, но я писал модульные тесты на основе унаследованного кода, который возвращает ссылку на ассоциативный массив. :-)
Я сделал это, определив переменную как объект (не массив) до вызова моей функции:
источник