我尝试测试Backbone.js视图是否正确地侦听了路由器触发的特定事件。
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;
}));
我一直没能通过这次考试,所以我想知道有没有人能帮我?
谢谢你,
迪亚哥
1条答案
按热度按时间aurhwmvo1#
也许这个能帮上忙