我在尝试运行测试时遇到问题。我想测试一个发出ajax请求的库,并为每个方法返回一个promise(get,post等)。
在我的测试中我有这个:
var a = proxy.get("test")
.done(function () {
ok(true, "API call - GET - Success");
})
.fail(function () {
ok(false, "API call - GET - Success");
});
$.when(a).always(function () {
start();
});
问题是测试没有运行。奇怪的是,如果我删除这些行,它就会起作用:
<script type="text/javascript" src="libs/sinon-1.9.1.js"></script>
<script type="text/javascript" src="libs/sinon-qunit-1.0.0.js"></script>
控制台没有显示任何错误,所以我不知道该怎么做。也许sinon用jQuery做了一些奇怪的事情?有什么提示吗?
提前致谢。
答案 0 :(得分:0)
我发现了问题。问题是我错过了fakeTimers。
所以,就像这样:
var clock = sinon.useFakeTimers();
var a = proxy.get("test")
.done(function () {
ok(true, "API call - GET - Success");
})
.fail(function () {
ok(false, "API call - GET - Success");
});
clock.tick(50);
$.when(a, b, c, d, e).always(function () {
start();
clock.restore();
});