摩卡可以确定是否期望回调(done
),或者它是否应该同步运行测试,仅基于您将回调作为参数传递。摩卡如何知道是异步?
// Sync
it("should be amazing", function(){
expect(amazing).equals(true);
});
// Async
it("should be amazing, eventually", function (done) {
setTimeout(function() {
expect(amazing).equals(true);
done();
}, 1000);
});
我不知道它是如何做到这一点的。我能想到的唯一方法是它将字符串解析为函数,并将其分解并确定是否传递参数。
这是怎么回事?
它知道你是否已经定义为带有参数(比如'done')功能 – Whymarrh
参见:http://stackoverflow.com/a/18422560/ 1267663 – Whymarrh