내 http 요청의 일부를 통과시키고 단위 테스트에서 모의하지 않으려하지만 passThrough() 메소드를 호출하려고하면 메소드가 누락 된 오류가 발생합니다. 슬로우됩니다 :
"TypeError: Object # has no method 'passThrough'".
이 사람이 내가 제발 해결할 수있는 방법을 알고 있나요
?내 코드입니다 :
'use strict';
describe('Controller: MainCtrl', function() {
// load the controller's module
beforeEach(module('w00App'));
var scope, MainCtrl, $httpBackend;
// Initialize the controller and a mock scope
beforeEach(inject(function(_$httpBackend_, $rootScope, $controller) {
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('http://api.some.com/testdata.json').passThrough();
scope = $rootScope.$new();
MainCtrl = $controller('MainCtrl', {
$scope: scope
});
}));
});
으로는 [문서] 설명 (http://docs.angularjs.org/api/ngMock.$httpBackend) : * 단위 테스트하는 동안, 우리는 우리의 단위 테스트를 빠르게 실행할 및 외부 의존성이 없습니다 따라서 XHR 또는 JSONP 요청을 실제 서버에 보내지 않으려합니다 *. 단위 테스트에서 사용 된 $ httpBackend 서비스는 통과 할 수 없습니다. 하지만 end-to-end 테스트에서 사용되는 $ httpBackend는 가능합니다. –
이것은 외부 템플릿을 사용하여 테스트 지시문을 필요 이상으로 어렵게 만듭니다. 그렇지 않습니까? – SimplGy