我正在测试我编写的库以限制函数的执行。
API是throttler.do(fn),它返回fn返回值的承诺(在限制器决定运行它的任何时候解析)。
我使用lolex假冒throttler.do(() => {});
throttler.do(() => {});
throttler.do(() => {}).should.eventually.equal(5);
和lolex.tick
所以如果我设置限制器允许每分钟两次动作并且
throttler.do(() => {}).should.never.be.fulfilled;
这种情况按预期失败了(它超时了,因为它永远等待最后的承诺,因为我从来没有打过setTimeout(() => done(), 1500)
)。
有没有办法可以把它变成通过测试,比如
Selector("funcName")
我无法做到
#selector(ClassName.funcName)
因为setTimeout方法是由lolex伪造的。