getTotalSessions(200);
function getTotalSessions(noToExpect){
it("Tests some stuff", function(done){
this.timeout(0);
setTimeout(function(){
checkSessions("day", function(total){
assert.strictEqual(total, noToExpect, "Session number mismatch!\n\nReturned: " + total + "\nExpected: " + noToExpect + "\n");
done();
});
}, 3000);
});
}
我正在做一些Mocha测试,我在上面的代码中遇到了一个奇怪的错误;
无论我传递的是什么数字, noToExpect
在声明时都是NaN
(尽管上面只是一个例子。
由于使用了回调,我假设noToExpect
只是在闭包内(虽然我对这个概念不熟悉)。
有没有办法可以在闭包中使用传递的参数?我只是缺少一些简单的东西吗?
修改:我在noToExpect
内的第一行添加了it
的日志,并记录了200,因此该号码已进入it
正确。
答案 0 :(得分:1)
noToExpect
应该可以在getTotalSessions中的任何嵌套匿名函数中使用,因为闭包在Javascript中的工作方式。我希望你有一些其他类型的错误让你误以为你无法访问它。
一些可能性包括:
这听起来像是你想出来的,但是这里有一个jsFiddle,它显示了你可以使用的一般概念,如果其他东西没有搞砸了它:http://jsfiddle.net/jfriend00/nY6WC/