【发布时间】:2014-02-20 01:02:46
【问题描述】:
我有一些设置超时的 Ember 代码:
var MyObject = Ember.Object.extend({
setFooToBarLater: function() {
Ember.run.later(this, 'set', 'foo', 'bar', 500);
}
});
我想用诗乃的假时钟来测试一下。这是我尝试过的:
var clock = sinon.useFakeTimers();
var myObject = MyObject.create();
myObject.setFooToBarLater();
clock.tick(600);
expect(myObject.get('foo')).to.be('bar');
但是expect 总是在set 之前运行。我还尝试将clock.tick 包装在一个运行循环中:
Ember.run(clock, 'tick', 600);
【问题讨论】:
-
您是否尝试过增加 Sinon 刻度以查看它是否最终被设置? Ember.run.later 不保证回调何时执行。这取决于 Run 循环中的其他内容。
-
@pradeek 我将它提高了 10 倍,超出了我的预期。我想我可以继续前进!