Почему жасминовый тест для угловых не вызывает $ ресурс?

Это кажется простым, но использую ли я $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();

Вздох...

Другие вопросы по тегам