如何测试主干视图是否正确侦听特定事件
How to test if a backbone view listens to specific event correctly
我正在测试Backbone.js视图是否正确侦听路由器触发的特定事件。我正在测试的视图上的initialize方法看起来像这样:
initialize: function(options) {
this.router = options.router; // pass router obj through args
this.listenTo(this.router, 'login_manager:show', this.buildLoginPage); // not shown on this snippet, but defined later
}
当路由在我的路由器上匹配时,我会执行以下操作:
showLogin: function() {
this.trigger('login_manager:show');
}
这段代码在浏览器上按预期运行,但我为它做的测试没有通过
beforeEach(function() {
this.router = new Backbone.Router();
this.loginManager = new LoginManager({
router: this.router
});
});
afterEach(function() {
this.loginManager = null;
this.router = null;
});
it('listens to correct event', sinon.test(function() {
var spy = sinon.spy(this.loginManager, 'buildLoginPage');
this.loginManager.router.trigger('login_manager:show');
expect(spy.called).to.be.true;
}));
我还没能通过这次考试,所以我想知道是否有人能帮我?
谢谢,
迭戈。
也许这可以帮助
it('listens to correct event', () => {
var stub = sinon.stub();
Backbone.Events.listenTo(this.loginManager.router, 'login_manager:show', stub);
this.loginManager.router.trigger('login_manager:show');
stub.called.should.be.true;
});
相关文章:
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- node.js测试事件是否是在不使用超时的情况下使用sinon.js发出的
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 我能从“;输入“;事件是否有更好的方法来跟踪文本更改
- 此multi-onChange事件是否有效
- 如何使用javascript检查事件是否应用于元素
- React/flux - 子组件用户事件 - 是否应通过调度程序路由所有内容
- webglcontextcreatenerror事件:是否同步触发
- 如何在表单提交时检查firebase推送事件是否成功
- 测试React中的点击事件是否会更新HTML
- jqueryangularjs如何知道鼠标按下事件是否是由浏览器的滚动条触发的
- 重新触发Javascript事件是否安全
- 在开放层 3 中完全渲染地图视图后,事件是否会触发
- JS:如何识别鼠标事件是否由触摸(而不是鼠标)提供
- 如何知道事件是否是在带有 GAS 的 Google 日历中创建的
- 如何检测点击事件是否已由“Enter”触发
- “blur”事件是否仅针对 HTML 表单对象触发
- onblur - 如何分辨点击的内容;或者如何判断 onClick 事件是否正在等待运行
- 检查事件是否已绑定(KEYUP)
- 在backbonejs视图中,keypress/keyup/keydown事件是否仅适用于输入,而不适用于其他元素