希望我可以通过这个艰难挣扎的测试获得帮助。
我正在尝试通过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函数的任务项上的断点的屏幕截图