我不想读几个小时的代码来找到相关的部分,但我很好奇茉莉如何实现它的时钟.有趣的是它可以使用同步测试代码测试异步代码.AFAIK与当前node.js一起支持ES5,这是不可能的(异步函数在ES7中定义).它是用estraverse解析js代码并从同步测试中构建异步测试吗?
只是我所说的一个例子:
it("can test async code with sync testing code", function () {
jasmine.clock().install();
var i = 0;
var asyncIncrease = function () {
setTimeout(function () {
++i;
}, 1);
};
expect(i).toBe(0);
asyncIncrease();
expect(i).toBe(0);
jasmine.clock().tick(2);
expect(i).toBe(1);
jasmine.clock().uninstall();
});
Run Code Online (Sandbox Code Playgroud)
在这里expect(i).toBe(1);应该是一个回调.