【发布时间】:2013-07-21 04:57:42
【问题描述】:
鉴于此代码:
showForm = function (url) {
return $.get(url, function (html) {
$('body').append();
});
};
当使用sinon.js、jQuery.mockjax.js和expect.js时,我有以下通过测试:
it("showForm calls jQuery.append", function () {
$.mockjax({
url: '/fake'
});
var spy = sinon.spy($.fn, "append");
presenter.showForm('/fake');
setTimeout(function () {
expect(spy.called).to.be.equal(true);
}, 1000);
});
使用 setTimeout 函数等待来自异步 $.get 的回调很难闻,如果我做太多,它会减慢我的测试套件。
但是,我觉得意图相当明确,并且似乎确实测试了我想要的。
有没有更好的方法,你能解释一下你的答案是怎么回事吗?
【问题讨论】:
-
你能让ajax调用异步:false吗?
-
谢谢,在这种情况下,不在 mockjax 服务器中(我可以看到)
标签: javascript jquery sinon