Javascript $httpBackend mock是否未发送请求?

Javascript $httpBackend mock是否未发送请求?,javascript,angularjs,unit-testing,httpbackend,Javascript,Angularjs,Unit Testing,Httpbackend,过了太多的时间,我一辈子都无法让这个例子起作用。我跟随Ben Lesh在Angular中模拟$http请求,但由于某些原因,服务请求没有发送 我已经通过构建一个单独的HTMLDOM并将我的应用程序和一个微型控制器应用到它,验证了该服务是否正常工作。我使用的是Jasmine 1.3和Angular 1.2.9(当然还有Angular mocks.js) 以下是应用程序: var app = angular.module('myApp', []); app.factory('httpBasedSe

过了太多的时间,我一辈子都无法让这个例子起作用。我跟随Ben Lesh在Angular中模拟
$http
请求,但由于某些原因,服务请求没有发送

我已经通过构建一个单独的HTMLDOM并将我的应用程序和一个微型控制器应用到它,验证了该服务是否正常工作。我使用的是Jasmine 1.3和Angular 1.2.9(当然还有
Angular mocks.js

以下是应用程序:

var app = angular.module('myApp', []);

app.factory('httpBasedService', function($http) {
    return {
        sendMessage: function(msg) {
            return $http.get('something.json?msg=' + msg)
                .then(function(result) {
                    console.log(result.data)
                    return result.data;
                });
        }
    };
});
以及测试:

describe("httpBasedService ", function () {
   var httpBasedService,
        mockBackend;

    beforeEach(function (){
        module('myApp');

        inject(function(_$httpBackend_, _httpBasedService_) {
            mockBackend = _$httpBackend_;
            httpBasedService = _httpBasedService_;
        });
    });

    afterEach(function() {
        mockBackend.verifyNoOutstandingExpectation();
        mockBackend.verifyNoOutstandingRequest();
    });

    it('should send the msg and return the response.', function () {
        var returnData = {excited: true};
        mockBackend.expectGET('something.json?msg=wee').respond(returnData);

        var returnedPromise = httpBasedService.sendMessage('wee');
        var result;

        returnedPromise.then(function(response) {
            result = response;
        });

        mockBackend.flush();
        expect(result).toEqual(returnData);
    });
});
我收到一个
错误:没有等待刷新的请求错误:未满足的请求:GET
(因为没有发送任何内容)。我观察网络请求,确信没有发送任何请求,即使我删除了模拟后端

我已经注释掉了一些东西,重组了一些东西,尝试了很多其他的例子,但都没有用。有人能帮我吗?

像往常一样,当我离开时,问题就解决了

原来我使用的是v1.1.0中的
angular mocks.js
。我的
angular.js
版本是1.2.9

脸掌

检查您的版本、未来的读者,节省几个小时。

Hehe。。我就像。。“wtf正在进行中?这真的应该会起作用……也许$http.get是在前面加了一个前导/或类似的“。”。。我认为这种版本控制的事情在某种程度上会让我们所有人受益。