2017-12-05 8 views
0

現在、を使用して、jasmine.clockをテストする方法はありますか? https://github.com/jasmine/jasmine/issues/361ジャスミンクロックでスロットルをテストする

私のコードは次のようなものになります:

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(); 
}); 

を私はジャスミン2.2とlodash 3.10

を使用しています、私は人々がここで、それは不可能ですと言っている2015年からの答えは、私が見つけたものの一例であるました

答えて

0
これは私の作品

Lodash:

'use strict'; 
 

 
const _ = require('lodash'); 
 

 
describe('foo:',() => { 
 
    let now; 
 

 
    beforeEach(() => { 
 
    jasmine.clock().install(); 
 
    jasmine.clock().mockDate(); 
 
    
 
    // const nowTime = Date.UTC(2017, 0, 1); // 1483228800 * 1000, now 
 
    // jasmine.clock().mockDate(new Date(nowTime)); 
 
    }); 
 

 
    afterEach(() => { 
 
    jasmine.clock().uninstall(); 
 
    }); 
 

 
    it('bar',() => { 
 
    const callMethod = jasmine.createSpy(); 
 
    const throttled = _.throttle(() => callMethod(), 100); 
 

 
    const t = setInterval(() => { 
 
     throttled() 
 
    }, 50); 
 

 
    jasmine.clock().tick(400); 
 

 
    expect(callMethod).toHaveBeenCalledTimes(4); 
 

 
    clearInterval(t); 
 
    }); 
 

 
});

+0

おっと、ウルはlodash ... –

+0

を使用して、私は最初の呼び出しを取得しますが、それは100ミリ秒後に第2の時間と呼ばれていた場合、私は確認したときに、私は2回目の呼び出しに – Ela

+0

更新lodashサンプル(削除アンダースコア1)を得ることはありません。私が嘲笑いの日をコメントした場合、私にとってはうまくいかない。しかし、それはそれで動作します。見てください –

関連する問題