Нуб борется с простым модульным тестом - PullRequest
0 голосов
/ 20 января 2019

Надеюсь, я смогу получить некоторую помощь в прохождении этого теста, с которым я плохо борюсь.

Я пытаюсь передать его с помощью функции getTask

  let createNewTodoItem = task => {
    var task = {
        finished: false,
        task: task
      }
     return task
  } 


  let addItemToTasks = (tasks, task) => {
     tasks.push(task);
   }

   let getTask = (tasks, task) => {
     for (let i = 0; i < tasks.length; i++) {
       if (tasks[i] == task) { //check if array contains the task//return the unfinished task
            return task
        } else {
            return null
          }
         }
       }



 describe('getTask', function () {
  it('should take a list of tasks and an individual task and returns the task object if it exists',
    function () {
        let tasks = []
        addItemToTasks(tasks, createNewTodoItem('finish reading moby dick'))
        addItemToTasks(tasks, createNewTodoItem('rake leaves'))
        addItemToTasks(tasks, createNewTodoItem('go grocery shopping'))
        addItemToTasks(tasks, createNewTodoItem('phone back andrew'))
        let task = getTask(tasks, 'go grocery shopping')
        let task2 = getTask(tasks, 'practice coding')
        chai.assert.equal(
            false,
            task.finished,
            'getTask should return a unfinished task'
        )
        chai.assert.equal(
            null,
            task2,
            'getTask should return nothing since this task was not added to the array'
        )
    })
})

Мой мыслительный процесс выглядит следующим образом. Мы пытаемся проверить, содержит ли массив задачу, которая была добавлена ​​функцией addItemToTask (). Затем мы утверждаем, что продуктовый магазин существует в массиве, но это незаконченная задача. Поэтому я пытаюсь реализовать это путем циклического перемещения по массиву и возврата любых существующих задач, независимо от того, завершены они или нет

Затем в блоке else мы можем просто вернуть ноль, чтобы удовлетворить второе утверждение, которое ожидает, что ноль будет возвращен для любого элемента, которого нет в массиве.

Когда я запускаю точку останова

Не уверен, что моя логика или синтаксис неверны (скорее всего, оба: P) Спасибо, что рады уточнить все, что я оставил неясным в этом вопросе!

Также, если это поможет, вот скриншот моей точки останова на элементе задач в функции getTask

введите описание изображения здесь

...