Почему жасминовый тест для угловых не вызывает $ ресурс?
Это кажется простым, но использую ли я $httpBackend
или нет, он никогда не вернется!
describe('R', function(){
var Res, http, item, original = {name:"John"};
beforeEach(function () {
module('app');
inject(function ($httpBackend, $resource) {
http = $httpBackend;
Res = $resource('/api/user/:user', {user:'@id'});
});
});
beforeEach(function (done) {
http.when('GET','/api/user/1').respond(original);
console.log("I GET CALLED");
Res.get({id:'1'},function (res) {
console.log("I NEVER GET CALLED");
item = res;
done();
});
});
it('should just be true', function(){
expect(true).toBe(true);
});
});
Почему второй console.log
линия никогда не вызывается?
1 ответ
Я понял. Неисчислимые часы потратили на то, чтобы понять это (хорошо, во многом из-за проблем с синхронизацией, когда jsfiddle иногда выдает ошибку "необъявленное описание переменной", которая отвлекла меня) Короче:
http.when('GET','/api/user/1').respond(original);
console.log("I GET CALLED");
Res.get({id:'1'},function (res) {
console.log("I NEVER GET CALLED");
item = res;
done();
});
http.flush();
Вздох...