2015-03-31 18 views
6

Sto tentando di affermare che un oggetto ne contiene un altro (e.i. Profondo non può essere utilizzato), ma sembra che quelli nidificati siano controllati rigorosamente.Chai deep contiene asserzioni su oggetti nidificati

Codice esempio:

describe('Meta', function() { 
    it('object should contains a cloned copy', function() { 
     var obj = {a: 1, b: '2', c: {a: 2, b: '2'}}; 
     return expect(obj).deep.contains(JSON.parse(JSON.stringify(obj))); 
    }); 
}); 

Messaggio di errore:

AssertionError: expected { a: 1, b: '2', c: { a: 2, b: '2' } } to have a property 'c' of { a: 2, b: '2' }, but got { a: 2, b: '2' } 

Esiste un modo per fare un "contiene" con funzionalità di "profonda uguali"?

+0

Possibile duplicato di [asserzione Chai che verifica se la struttura dell'oggetto contiene almeno un'altra struttura dell'oggetto] (https://stackoverflow.com/questions/35101998/chai-assertion-testing-whether-object-structure-taintain-at-least -altri-oggetto-s) – GolezTrol

risposta

-1

Invece di usare contiene, provare a utilizzare eql:

expect(obj).to.deep.eql(JSON.parse(JSON.stringify(obj))); 

eql confronta i valori nell'oggetto.

Questo dovrebbe fare il trucco.

Problemi correlati