我正在用摩卡咖啡进行测试,并且正在学习中。问题是“返回数组的第n个值”,尽管摩卡继续给我这个错误 ”应将元素返回到该位置: AssertionError [ERR_ASSERTION]:未定义== 0“
我真的不明白这个问题。恰好是数组的第n个位置。
x(p) {
if(this.items[p-1]==="undefined"){
throw new Error('out');
}else{
return this.items[p-1];
}
}
//摩卡测试代码
describe('#get(i)', function() {
var sl;
beforeEach(function(){
sl = new SortedList();
});
it('should return an OutOfBounds exception if there is no element in that position', function() {
try {
sl.get(20);
} catch (e) {
assert.equal(e instanceof Error, true)
assert.equal(e.message, "OutOfBounds")
assert.throws(sl.get, Error, '/OutOfBounds/');
}
});
it('should return the element in that position', function() {
var foo = 10;
for(let i=0; i<200; i++) {
sl.add(foo*i);
assert.equal(sl.get(i), foo*i);
}
});
});
答案 0 :(得分:0)
您只需要返回this.items[p - 1]
。数组的索引为0,这就是为什么需要- 1
的原因。如果传递的值p
是一个索引,则只需使用p
x(p) {
return this.items[p - 1];
}
或者:
x(p) {
return this.items[p];
}
答案 1 :(得分:0)
尝试一下
x(p) {
if(!this.items[p-1]){
throw new Error('out');
}else{
return this.items[p-1];
}
}