SinonJS,QUnit和jQuery测试运行

时间:2014-05-10 03:26:40

标签: javascript jquery durandal qunit sinon

我在尝试运行测试时遇到问题。我想测试一个发出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做了一些奇怪的事情?有什么提示吗?

提前致谢。

1 个答案:

答案 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();
});