【发布时间】:2014-02-23 01:35:12
【问题描述】:
我正在尝试使用 mocha 和 sinon 测试 ember 组件。我想测试使用 sinon 的“useFakeXMLHttpRequest”进行 ajax 调用的组件的操作之一。但是这个测试导致超时错误。我正在使用来自https://github.com/teddyzeenny/ember-mocha-adapter 的 ember 的 mocha 测试适配器,我在云中找不到 js 文件,所以我粘贴了整个代码 - 所以它在 jsbin 中可能看起来有点乱。
这里是问题的 jsbin 链接:http://jsbin.com/usajOhE/1/
组件的代码是:
AS.QuestionViewComponent = Ember.Component.extend({
templateName: "components/question-view",
actions: {
makeAjaxCall: function() {
jQuery.ajax({
url: "/todo/items",
success: function(data) {
//callback(null, data);
}
});
}
}
});
与组件关联的把手是:
<a {{action "makeAjaxCall"}} class="test-link">Make ajax call</a>
我的测试脚本是:
describe("Testing", function() {
var xhr, requests;
before(function() {
xhr = sinon.useFakeXMLHttpRequest();
requests = [];
xhr.onCreate = function(req) {
requests.push(req);
};
});
after(function() {
xhr.restore();
});
beforeEach(function() {
AS.reset();
visit("/");
});
it("shoud make ajax call", function() {
//TIMESOUT HERE
click($("a.test-link:first")).then(function() {
console.log(requests);
expect(requests.length).to.be(1);
});
});
});
您的帮助将不胜感激。谢谢
【问题讨论】:
标签: ember.js ember-data mocha.js sinon