我已经写了一个调用jQuery的功能单元测试getJSON
方法。 我是测试的唯一的事情是,它被称为与预期URL。 我的单元测试使用茉莉花间谍嘲笑API调用。 然而,当我运行单元测试,我得到这个错误:
1) should make a request to the expected URL when running on localhost
test module getDataFromApi function
TypeError: Cannot read property 'fail' of undefined
在我的单元测试我创建了一个茉莉花间谍,它返回done
和fail
的方法。 我在做什么错在这里?
这里是我的单元测试:
describe('getFundDataFromApi function', function () {
beforeEach(function () {
spyOn($, "getJSON").and.callFake(function () {
return {
done: function () {},
fail: function () {}
};
});
});
it('should make a request to the expected URL when running on localhost', function () {
var expectedUrl = '/assets/mock-data/mock-data.json';
module.getDataFromApi();
expect($.getJSON).toHaveBeenCalled();
expect($.getJSON).toHaveBeenCalledWith({url:expectedUrl});
});
});
功能我想测试:getDataFromApi
getDataFromApi: function () {
var mod = this;
var url = this.settings.apiUrl;
$.getJSON({
url: url
})
.done(function (data) {
mod.processApiData(data);
})
.fail(function () {
mod.displayErrorMessage();
});
},