如何确保对象数组中的所有项目都具有 mocha 中所有必需的键?

how to make sure all items in an array of objects has all required keys in mocha?

我是测试新手,我有一个对象数组的结果,我想确保数组中的每个项目都具有必需的属性,结果是这样的:

// result_threads = [{a:1,b:2},{a:3,b:4}]

我想做这样的测试:

chai_module
      .request(server)
      .get(`/api/threads/${test_board_id}`)
      .end((get_threads_error, response) => {
        const { status: actual_status } = response;
        const { threads: result_threads } = response.body
        // THE TEST I WANT TO MAKE
        assert.isArray(result_threads).to.contain.an.item.hasAllKeys(['a','b']);


        done();
      });

如何确保数组中的项目具有所有必需的键?

一种方法是分两步验证断言。您首先验证您是否有一个数组,然后遍历该数组并验证每个项目是否具有您期望的键:

chai_module
  .request(server)
  .get(`/api/threads/${test_board_id}`)
  .end((get_threads_error, response) => {
    const { status: actual_status } = response;
    const { threads: result_threads } = response.body

    assert.isArray(result_threads);
    result_threads.forEach((item) => {
       assert.hasAllKeys(item, ['a', 'b']);
    });

    done();
  });