Javascript 用茉莉花钟测试节气门
目前是否有一种使用jasmine.clock测试lodash节流阀的方法?我找到了2015年的答案,人们说这是不可能的,下面是我发现的一个例子: 我的代码如下所示:Javascript 用茉莉花钟测试节气门,javascript,jasmine,lodash,throttling,Javascript,Jasmine,Lodash,Throttling,目前是否有一种使用jasmine.clock测试lodash节流阀的方法?我找到了2015年的答案,人们说这是不可能的,下面是我发现的一个例子: 我的代码如下所示: let methodTested = _.throttle(() => callMethod, {trailing: true, leading: false }); // this method is imported beforeEach(function() { methodTested(); jasmine
let methodTested = _.throttle(() => callMethod, {trailing: true, leading: false }); // this method is imported
beforeEach(function() {
methodTested();
jasmine.clock().tick(100);
});
it('callMethod to be called', function() {
expect(callMethod).toHaveBeenCalled();
});
我正在使用jasmine 2.2和lodash 3.10,这对我来说很有用
洛达斯:
"严格使用",;
常数=需要“lodash”;
描述“foo:”,=>{
让我们现在开始;
beforeach=>{
jasmine.clock.install;
jasmine.clock.mockDate;
//const nowTime=Date.utc217,0,1;//1483228800*1000,现在
//jasmine.clock.mockDatenew DatenowTime;
};
之后=>{
jasmine.clock.uninstall;
};
它是‘酒吧’,=>{
const callMethod=jasmine.createSpy;
const throttled=\ throttle=>callMethod,100;
常数t=setInterval=>{
节流
}, 50;
jasmine.clock.tick400;
expectcallMethod.to已被催收4次;
明确间隔;
};
};我接到第一个电话,但当我检查是否在100毫秒后第二次呼叫时,我没有得到第二个callupdated lodash样本。如果我把嘲弄日期注释掉,对我来说是行不通的。但它与它一起工作。看看你用的是哪一种lodash和jasmine版本。当我把断点放在它经过的setInterval内时,我仍然无法让它工作。当没有断点并且我执行{leading:false,trailing:true}时,即使使用tick,我也不会得到对callMethod的调用。我认为这是可行的,因为throttle方法是在模拟jasmine.clock之后创建的。因为我正在导入该方法,所以我认为这不会起作用