2016-05-03 16 views
0

Ich verwende die Chai-Expect-Bibliothek für meine Tests. Ich habe eine Reihe von Objekten, die die Testdaten sind. Jedes Objekt hat 2 Eigenschaften name und profession. Ich spritze diese in eine Tabelle. Wenn ich alle Datensätze aus dem abrufen, erhalten Sie das gleiche Array zurück, aber jetzt jedes Objekt im Array wurde mit einem automatisch generierten id Feld hinzugefügt. Ich muss meine Testdaten anhand der abgerufenen Daten überprüfen. Gibt es eine Kurzform, dies in Chai zu tun, ohne die abgerufenen Daten durchlaufen zu müssen?Wie überprüft man, ob jedes Objekt in einem Array von Objekten einige Schlüssel hat

Antwort

2

können Sie without verwenden, um ein Feld in Folge zu beseitigen:

r.table('test').without('id') 

Auf diese Weise können dagegen leicht behaupten können.

Beispielcode:

var chai = require('chai') 
var assert = chai.assert 

var r  = require('rethinkdb') 

r.connect({ 
    host: 'localhost', 
     port: 28015, 
    }) 
    .then(function(conn) { 
    return conn 
    }) 
    .then(function(conn) { 
    return r.table('table').without('id').run(conn) 
    }) 
    .then(function(cursor) { 
    return cursor.toArray() 
    }) 
    .then(function(data) { 
    assert.deepEqual([ 
    {name: 'foo', profession: 'bar'}, 
    {name: 'foo2', profession: 'bar2'}, 
    ], data) 
    })