2015-03-31 11 views
6

Ich versuche zu behaupten, dass ein Objekt enthält ein anderes (e.i. Tiefe gleich kann nicht verwendet werden), aber es scheint, dass die verschachtelten genau überprüft werden.Chai tief enthält Assertion auf verschachtelte Objekte

Code-Beispiel:

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))); 
    }); 
}); 

Fehlermeldung:

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' } 

Gibt es eine Möglichkeit ein zu tun "enthält" mit "deep gleich" Funktionalität?

+0

Mögliches Duplikat von [Chai-Assertion testing, ob die Objektstruktur mindestens eine andere Objektstruktur enthält] (https://stackoverflow.com/questions/35101998/chai-assertion-testing-whether-object-structure- contains- at- least -other-Objekt-s) – GolezTrol

Antwort

-1

Anstelle der Verwendung enthält, versuchen eql mit:

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

eql vergleicht die Werte im Objekt.

Das sollte den Trick tun.

Verwandte Themen