2014-07-09 141 views
0

我的目標是通過預先設置的AngularJS嘲笑服務(jasmine)響應將數據加載到html。 data.json也存在,所以如果模擬響應不起作用,顯示的單詞將是「http」而不是「mock」。但反應結果總是「http」,這意味着模擬服務並不真正起作用。 非常感謝關於這個問題的任何想法。預期響應在AngularJS單元測試(Jasmine)中不起作用

茉莉花JavaScript文件:

describe("DController", function() { 
var httpBackend,scope; 
beforeEach(module('MyApp'));  

beforeEach(inject(function($rootScope,$httpBackend,$http,$controller) { 
    scope = $rootScope.$new(); 
    httpBackend = $httpBackend; 
    DController = $controller('DController', { 
      $scope: scope 
    }); 
    httpBackend.expectGET('data.json').respond({ 
     "name": "mock" 
    }); 
})); }) 

controller.js文件

.controller('DController',function($scope,$http) {'use strict'; 

$scope.loadJson = function() { 
    var getDataJson = $http.get('data.json'); 

    getDataJson.success(function(data, status, headers, config) { 
     $scope.data = data; 
    }); 
}}) 

和data.json簡直是

{ "name": "http" } 

回答

0

您是否嘗試過使用 「whenGET」,而不是「expectGET 「?

相關問題