Denetleyici testi sırasında 'a bakıyorum Hata: Beklenmeyen istek: GET/api/initData, Beklenen GET/api/empData .Şimdi, denetleyicimde iki tane http araması var. Aşağıdaki konular var.Beklenmedik istek: Açısal yasemin testine tabi tut
1) verdikten sonra $ httpBackend.expectGET hem test durumları aksi geçiyoruz ben error.Here Yukarıdaki ben yılında bir http çağrısı
2) afterEach için blok tekrar test etmek istiyorum alıyorum için $ httpBackend.expectGET yapmak zorundayım, aksi halde atıyor. Aşağıda
bu denetleyici için benim kod parçacığı olduğunu Aşağıdadescribe('Manager Controller',function(){
var $scope,
$rootScope,
$injector,
$controller,
$httpBackend,
mockManagerData,
managerController;
beforeEach(module('APP'));
beforeEach(inject(function(_$rootScope_,_$injector_,_$controller_,_$httpBackend_){
$rootScope = _$rootScope_;
$injector = _$injector_;
$controller = _$controller_;
$scope = $rootScope.$new();
$httpBackend = _$httpBackend_;
mockManagerData = {
"manager": [
{
"id": 1,
"name": "Sam",
"department": "IT",
"employee": [
{
"id": 1,
"name": "Mak",
"profile": "developer"
},
{
"id": 1,
"name": "John",
"profile": "QA"
},
{
"id": 1,
"name": "Tom",
"profile": "Dba"
}
]
}
]
}
managerController = $controller('managerCtrl',{
$scope:$scope
});
}));
it('should get manager details',function(){
$httpBackend.expectGET('/api/initData').respond(200,'');
$httpBackend.expectGET('/api/empData').respond(200,mockManagerData);
$scope.getManagerDetails();//click event in controller
$httpBackend.flush();
expect(true).toBe(true);
});
afterEach(function() {
$httpBackend.expectGET('/api/initData').respond(200,'');
$httpBackend.expectGET('/api/empData').respond(200,mockManagerData);
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
})
Yukarıdaki kod iyi çalışıyor
(function(angular){
'use strict'
angular.module('APP').controller('managerCtrl',managerController);
managerController.$inject=['$scope','$http'];
function managerController($scope,$http){
$scope.getManagerDetails = function(){
$http({
method: 'GET',
url: '/api/empData'
}).then(function successCallback(response) {
//some login
}, function errorCallback(response) {
});
}
$http({
method: 'GET',
url: '/api/initData'
}).then(function successCallback(response) {
//some logic
}, function errorCallback(response) {
});
}
})(window.angular)
benim denetleyicisi mantık ama http çağrının herhangi kaldırdığınızda alıyorum yukarıda belirtilen erros. Lütfen bir tane yardım edin.Teşekkürler
İstekte yapıyor kontrolör mantığı eklemek gerekebilir. İlk olarak, daha esnek olduğu için bazı 'whenGet' ekleyebilir ve ardından 'waitGet' kullanarak ünite testlerinizi temizleyebilirsiniz. – austin665
Denetleyici mantığımı güncelleştirdim – Nitya