0
저는 AngularJS 앱에서 단위 테스트를 위해 Jasmine과 Karma를 사용하고 있습니다. 컨트롤러 기능에서 내부 변수의 값을 확인해야합니다.재스민을 사용하여 함수의 내부 변수를 확인하십시오.
여기 내 컨트롤러입니다.
(function() {
'use strict';
angular
.module('testApp',[])
.controller('testController', testController);
function testController($http, $scope, $timeout) {
var vm = this;
vm.getTestValues = getTestValues;
function getTestValues(){
vm.serverError = undefined;
vm.priceList = [];
$http.get('https://example.com/api/getPrice').then(function(response) {
vm.priceList = response.data;
vm.value = vm.priceList[0].itemValue;
vm.totalValue = vm.value * 10;
}).catch(function(e){
vm.serverError = 'Server Error';
});
}
}
})();
여기 내 테스트 코드
describe('Test Controller', function() {
beforeEach(module('testApp'));
var ctrl;
beforeEach(inject(function($rootScope, $controller){
scope = $rootScope.$new();
ctrl = $controller('testController', { $scope: scope });
}));
describe('vm.value', function() {
it('Should be ', function() {
ctrl.getTestValues();
console.log(ctrl.priceList);
});
});
});
console.log(ctrl.priceList);
인쇄 []
입니다.
어떻게 vm.priceList
, vm.value
및 vm.totalValue
의 값에 액세스 할 수 있습니까?
https://docs.angularjs.org/api/ngMock/service/$httpBackend https://docs.angularjs.org/api/ngMock/service/$httpBackend –
한 가지 제안 : 더 이상 AngularJS와 대한 해달라고 쓰기를 테스트합니다. 각도 2+에 대한 업그레이드 가능성은 없으며 테스트 할 수있는 것들은 매우 제한적입니다. 단, 테스트에서 중요한 것은 아닙니다. – CodeNashor