2016-06-07 3 views
0

저는 chai.js를 사용하는 2 개의 프리미티브 배열을 비교하지만 요소의 순서는 고려하지 않았습니다.Chai.js는 순서를 고려하지 않고 배열을 비교합니다.

const actual = ['a', 'b', 'c']; 
const expected = ['b', 'c', 'a']; 
expect(actual).to.have.length(expected.length); 
expected.forEach(e => expect(actual).to.include(e)); 

그러나 (내가 워드 프로세서에서 그것을 찾을 수 없습니다)이 일의 방식 '에 내장 된'는 선호가 있는지 궁금 해요 :

지금 분명히 나는 ​​이런 식으로 뭔가를 할 수 있습니다.

+0

" c ", b", "c"] ' – Redu

답변

2

expect([4, 2]).to.have.members([2, 4])

+0

아주 좋았어, 고마워,이게 내가 찾고 있었던 바로 그거야. –

1

당신은 차이 BDD에서 members assertion를 사용할 수 있습니다. 그것은 당신의 코드가`[ "A", "B", "C", "B"]`과`[ "A"를 다를 수있을 것입니다 ... 배열의 까다로운 순서없이

var mocha = require('mocha'); 
var should = require('chai').should(); 

let a = ['a', 'b', 'c']; 
let b = ['c', 'a', 'b']; 
let c = ['d', 'e', 'c', 'b']; 

describe('test members', function() { 
    it('should pass', function() { 
     a.should.have.members(b); 
    }); 

    it('should fail', function() { 
     a.should.not.have.members(c); 
    }); 
}); 
관련 문제