如何验证对象数组中的每个对象是否都有某些键

时间:2016-05-03 11:29:37

标签: mocha bdd rethinkdb chai

我正在使用chai expect库进行测试。我有一个对象数组,它是测试数据。每个对象都有2个属性nameprofession。我将这些注入表中。当我从获取相同的数组中检索所有记录时,现在数组中的每个对象都添加了自动生成的id字段。我需要针对检索到的数据验证我的测试数据。是否有任何简写方法在chai中执行此操作而不必遍历检索到的数据?

1 个答案:

答案 0 :(得分:2)

您可以使用without来删除结果中的字段:

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

这样你就可以轻易地断言它。

示例代码:

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