我正在尝试使用jasmine插件mock-ajax来测试一些ajax请求。测试正确识别何时发出了ajax请求,并且可以验证请求URL之类的内容。但是当按照茉莉花自述文件中的说明立即返回示例时,我无法调用成功回调。我正在使用浏览器请求来处理我的请求。
测试代码在这里
var request = require('browser-request');
var loaded = false;
exports.loaded = function () {
return loaded;
};
exports.fetch = function (url) {
request(url, function(er, response, body) {
loaded = true;
});
};
测试代码在这里
var stationData, resoursePath;
describe('Fetch station data after browser load', function () {
beforeEach(function(){
resoursePath = 'data/data.json';
jasmine.Ajax.install();
stationData = require('../../app/js/station-data.js');
});
afterEach(function() {
jasmine.Ajax.uninstall();
});
it('should start with no data loaded',function () {
expect(stationData.loaded()).toBe(false);
});
it('should load data from server', function () {
stationData.fetch(resoursePath);
expect(jasmine.Ajax.requests.mostRecent().url).toBe(resoursePath);
});
it('should be loaded after a successful response', function () {
jasmine.Ajax.stubRequest(resoursePath).andReturn({
"responseText": 'immediate response'
});
stationData.fetch(resoursePath);
expect(stationData.loaded()).toBe(true);
});
});
前两个测试通过,但第三个不通过。