Сравнение двух массивов при тестировании JS с mocha/chai

Chai

Стоит задача проверить работа метода, который возвращает массив. Порядок элементов не важен, важно только их наличие/отсутствие. Используются mochajs + chaijs.

Первое, что приходит на ум, это eql. Метод сработает для:

expect([1,2,3]).to.eql([1,2,3]); // true

Но обломается на :

expect([3,1,2]).to.eql([1,2,3]); // false

Что б сравнить массивы как два множества необходимо использовать members. Когда два множества одинаковые? Когда первое является подмножеством второго, а второе — подмножеством первого. Пример:

var a = [1,2,3], b[3,1,2];
expect(a).to.include.members(b); // true
expect(b).to.include.members(a); // true

Если оба expect’a вернули true, то множества содержат одинаковые элементы и тест можно считать выполненным.

, , , , , ,

2 комментария
  1. VY_CMa Said:

    Отталкивает меня название как-то. Не стал бы пользоваться mocha 😀

  2. KronuS Said:

    Если что http://translate.google.com/#en/ru/mocha
    «кофе мокко» 😉

Оставить комментарий

Top ↑ | Main page | Back