0
나는 이것에 너무 많은 시간을 할애했습니다. 원격 서버에서 JSONP를 가져 와서 화면에 표시하는 간단한 각도 응용 프로그램이 있습니다.각도 단위 테스트 - httpBackend JSONP
Jasmine을 사용하여 단위 테스트를 만드는 데 가장 힘든 시간을 보내고 있습니다.
여기 여기
var pdApp = angular.module('pdApp', []);
pdApp.controller('pdController', function ($scope, $http) {
var jsonpUrl = "http://10.1.20.377/products/1/167?cb=JSON_CALLBACK";
$http.jsonp(jsonpUrl).success(function(data) {
$scope.pageContent = data.pageContent;
$scope.cartContent = data.cartContent;
$scope.content = data.productContent;
});
});
내 앱
입니다 그리고 나의 단위 테스트describe('myTest', function() {
var MainCtrl, scope, httpBackend;
beforeEach(module('pdApp'));
module('pdApp', function($provide) {
$provide.value('DefaultContent', defaultJSON);
});
beforeEach(inject(function($controller, $rootScope, $httpBackend) {
httpBackend = $httpBackend;
scope = $rootScope.$new();
MainCtrl = $controller('pdController', {
$scope: scope
});
}));
it("Product name should be set", function(){
httpBackend.whenJSONP("/products/1/167").respond(
{
"name" : "Prod Name",
"desc" : "Long Description Here"
}
);
expect(scope.pageContent.name).toEqual("Prod Name");
});
});
자세한 정보를 제공 할 수 있습니까? – bencripps
@bencripps [문서] (https://docs.angularjs.org/api/ngMock/service/$httpBackend) : "mock $ httpBackend에는 테스트가 보류중인 요청을 명시 적으로 플러시 할 수있게하는 flush() 메서드가 있습니다. 이것은 백엔드의 비동기 api를 보존하는 동시에 테스트가 동 기적으로 실행되도록합니다. " –