Noob在简单的单元测试中苦苦挣扎

时间:2019-01-20 05:42:25

标签: javascript arrays unit-testing mocha chai

希望我可以通过这个艰难挣扎的测试获得帮助。

我正在尝试通过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块中,我们可以返回null来满足第二个断言,该断言期望数组中没有的任何项都返回null。

运行断点时

不确定我的逻辑或语法是否错误(很可能都是:P) 感谢您很高兴澄清我在问题中不清楚的所有内容!

如果这有帮助,这是我在getTask函数的任务项上的断点的屏幕截图

enter image description here

0 个答案:

没有答案