Как убедиться, что все элементы в массиве объектов имеют все необходимые ключи в мокко? - PullRequest
0 голосов
/ 11 октября 2019

Я новичок в тестировании, у меня есть результат массива объектов, и я хочу убедиться, что у каждого элемента в массиве есть требуемые свойства, результат такой:

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

как мне убедиться, что у элемента в массиве есть все необходимые ключи?

1 Ответ

1 голос
/ 12 октября 2019

Одним из способов сделать это может быть проверка утверждений в два этапа. Сначала вы проверяете наличие массива, а затем выполняете итерацию по массиву и проверяете, есть ли у каждого элемента ожидаемые ключи:

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