小编cca*_*ert的帖子

Jasmine、spyOn、getJSON 和失败

我正在尝试学习 Jasmine spyOn功能。使用spyOn测试调用jQuery.getJSON的函数时,我收到TypeError: Cannot read property 'fail'

这是我要测试的功能:

getJsonServerNine: function () {
    'use strict';

    $.getJSON(queryServer.url, function(simpleJson) {
        parseResponse(simpleJson);                
    }).fail(function(error) {
        console.log(error.statusText);
    });

}
Run Code Online (Sandbox Code Playgroud)

这是我的测试:

it("tests getJSON call", function() {
    spyOn($, 'getJSON').and.callFake(function (url, success) {
        success({
            "nine": 9
        });
    });
    queryServer.getJsonServerNine();
    expect(queryServer.queryResult).toBe(9);
});
Run Code Online (Sandbox Code Playgroud)

如果我从getJsonServerNine() 中删除失败回调,那么我的代码就可以工作了。如果我调用jquery.ajax()而不是getJSON那么我可以找到一种方法来让它工作。我怎样才能通过调用$.getJSON 让它工作

我已经看到了类似问题的这个答案,它非常好,但与我的情况不太匹配,对我不起作用,并且使用过时的 Jasmine 语法。

javascript unit-testing jasmine

3
推荐指数
1
解决办法
1772
查看次数

标签 统计

jasmine ×1

javascript ×1

unit-testing ×1