Что является причиной этой ошибки AssertionError для моего модульного теста на массивах IndexOf - PullRequest
1 голос
/ 28 июня 2019

Я занимаюсь программированием.Существует раздел кода, написанный вместе с тестами для тестирования кода.Я очень плохо знаком с кодированием и не уверен, с чего начать.

Полученная ошибка говорит: «Вы должны быть в состоянии определить местоположение элемента в массиве» array

AssertionError: expected undefined to deeply equal 2

Я попытался объявить переменную и записать цикл, но яМне сказали, что это не способ решить эту проблему.Моя цель - сдать тест.

Вот фрагмент кода, который написан:

exports = typeof window === 'undefined' ? global : window;

exports.arraysAnswers = {
  indexOf: function(arr, item) {

  },

Вот код, который находится в папке тестов:

if ( typeof window === 'undefined' ) {
  require('../../app/arrays');
  var expect = require('chai').expect;
}

describe('arrays', function() {
  var a;

  beforeEach(function() {
    a = [ 1, 2, 3, 4 ];
  });

  it('you should be able to determine the location of an item in an array', function() {
    expect(arraysAnswers.indexOf(a, 3)).to.eql(2);
    expect(arraysAnswers.indexOf(a, 5)).to.eql(-1);
  });

Я ожидаю, что тестпройти, но понятия не имею, с чего мне начать.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 28 июня 2019

Вам нужно что-то вернуть из функции indexOf:

indexOf: function(arr, item) {
  let index = -1;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === item) {
      index = i;
      break;
    }
  }
  return index;
}

Как и нативная функция indexOf в JavaScript, она вернет -1, если элемент не найден.

...