gpt4 book ai didi

Ember.js - 测试路由器 didTransition 事件

转载 作者:行者123 更新时间:2023-12-02 09:12:33 25 4
gpt4 key购买 nike

我正在尝试测试一个自定义 mixin,它重新打开 Ember 路由器并向 didTransition 事件添加监听器。这是代码:

// my_mixin.js
...
initialize: function(container, application) {
Ember.Router.reopen(App.MyMixin);
var router = container.lookup('router:main');
router.on('didTransition', function() {
this.myFunctionFromMixin();
});
},
...

然后,测试(在 Coffeescript 中):

test 'hooks myMixinFunction into router didTransition event', ->
expect(1)
myMixinStub = sinon.stub(router, 'myFunctionFromMixin')
router.transitionTo('some/known/route')
# What goes here?
ok(myMixinStub.calledOnce)

显然,这是行不通的,因为一旦路由器完成转换,就必须有一种方法来执行断言。你会怎么做?

请注意,这不是集成测试,而是 mixin 的单元测试。

最佳答案

我最终进行了以下测试并且它正在工作:

Ember.run ->
router.trigger('didTransition')
ok(myMixinStub.calledOnce)

关于Ember.js - 测试路由器 didTransition 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com