模拟和测试一个按键事件与摩卡,Chai, Sinon
Simulate and test a keypress event with Mocha, Chai, Sinon?
我有一个Backbone视图,其中包含keyup
和keydown
事件的自定义事件。
events: {
"keyup .search-box": "changeTextTimer",
"keydown .search-box": "cancelTextTimer"
},
我正在编写单元测试来检查那些回调是否在keyup或keydown之后被调用。我使用jQuery来触发键事件。
it("should call cancelTextTimer", function() {
var searchBox = new SearchBoxView({el: $(HTML),}).render();
var e = $.Event("keydown");
e.which = 65;
searchBox.$(".search-box").trigger(e);
var changeTextTimer = sinon.spy(searchBox, "cancelTextTimer");
_.defer(changeTextTimer.restore);
changeTextTimer.should.have.been.calledOnce;
});
然而,我收到一个
AssertionError: expected cancelTextTimer to have been called exactly once, but
it was called 0 times: Got value cancelTextTimer but expected a value undefined undefined
试试这个
it("should call cancelTextTimer", function(done) {
var searchBox = new SearchBoxView({el: $(HTML),}).render();
var changeTextTimer = sinon.spy(searchBox, "cancelTextTimer");
_.defer(changeTextTimer.restore);
var e = $.Event("keydown");
e.which = 65;
searchBox.$(".search-box").trigger(e);
setTimeout(() => {
changeTextTimer.should.have.been.calledOnce;
done();
}, 0);
});
相关文章:
- 摩卡由于绝对路径而不断轰炸
- 如何使用浏览器中用酶创建的组件反应例如摩卡
- 找不到模块'它'当用摩卡/柴测试时
- 摩卡+柴+jsdom Can't加载自定义模块目录
- 如何将 XML 文件包含在摩卡测试用例中
- 摩卡与敏捷(异步)冲突
- 用于摩卡测试的 CLI 调试器
- 如何在摩卡测试中使用“定义”
- 摩卡“每个钩子之前”红色消息.我怎么知道具体出了什么问题
- 错误:使用摩卡测试时找不到模块
- 大口喝摩卡如何传递编译器标志
- 我可以从摩卡测试MarkLogic SJS吗
- 用摩卡测试失败的承诺'内置的promise支持
- 如何用摩卡/柴制作模拟窗口/文档
- 使用带量角器的摩卡无法通过超时测试
- 未定义的Es6级在单元测试中与大口摩卡
- 摩卡和西农方法间谍
- 模拟和测试一个按键事件与摩卡,Chai, Sinon
- 检查摩卡是否触发了一个事件
- 为浏览器调整大小事件编写测试.PhantomJS,摩卡,Chai &兴农