在使用REST服务的控制器的Jasmine测试中需要帮助

时间:2019-07-05 17:59:50

标签: angularjs testing service jasmine karma-runner

我无法为控制器创建Jasmine测试(我以前从未使用过Jasmine),我找不到使用其中具有服务的控制器来执行此操作的方法,并且该服务使用了http服务。

aic-solicitacao.controller.js

(function (angular) {

    'use strict';

    angular
        .module('app.controllers')
        .controller('solicitacaoController', solicitacaoController);

        solicitacaoController.$inject = ['$scope', '$timeout', 'ambienteIntegracaoContinuaService'];

    function solicitacaoController($scope, $timeout, ambienteIntegracaoContinuaService) {

        var vm = this;

        vm.disabled = true;

        function retornoBuild() {
            vm.buildId = 'Build solicitado. Acompanhe na aba logs.';
        }

        function retornoDeploy() {
            vm.deployId = 'Deploy solicitado. Acompanhe na aba logs.';
        }

        function errorBuild(nomeComponent) {
            vm.buildId = 'Projeto informado "' + nomeComponent.config.data.componente + '" não existe.';
            vm.styleError = true;
        }

        function errorDeploy(nomeComponent) {
            vm.deployId = 'Projeto informado "' + nomeComponent.config.data.componente + '" não existe.';
            vm.styleError = true;
        }

        // solicitação Build
        vm.solicitarBuild = function (data) {

            vm.disabled = false;

            var build = {
                componente: data.nomeComponente,
                branch: data.branch,
                profile: ''
            };

            ambienteIntegracaoContinuaService.enviarBuild(build).then(retornoBuild, errorBuild);

            $timeout(vm.limparSolicitarBuild, 5000);
        };

        // solicitação Deploy
        vm.solicitarDeploy = function (data) {

            vm.disabled = false;

            var deploy = {
                componente: data.nomeComponente,
                versao: data.versao,
                ambiente: data.ambiente,
                responsavel: ''
            };

            ambienteIntegracaoContinuaService.enviarDeploy(deploy).then(retornoDeploy, errorDeploy);

            $timeout(vm.limparSolicitarDeploy, 5000);
        };

        vm.limparSolicitarBuild = function () {
            delete $scope.build;
            vm.disabled = true;
            $scope.build = {};
            vm.buildId = '';

            $scope.formBuild.$setPristine();
        };

        vm.limparSolicitarDeploy = function () {
            delete $scope.deploy;
            $scope.deploy = {};
            vm.deployId = '';

            $scope.formDeploy.$setPristine();
        };
    }
})(angular);

aic-portal.service.js

(function (angular) {
    'use strict';

    angular
        .module('app.factorys')
        .factory('ambienteIntegracaoContinuaService', ambienteIntegracaoContinuaService);

    ambienteIntegracaoContinuaService.$inject = ['$http'];

    function ambienteIntegracaoContinuaService($http) {

        var URI = 'https://aic.desenv.bb.com.br/';

        var factory = {

            enviarBuild: function (data) {
                console.log('parametro enviado para service -> ', data);
                return $http.post(URI + 'aic-build/aic-acionamento-build/api/v1/build/execucao', data);
            },
            listarAmbienteDeploy: function (param) {
                return $http.get(URI + 'aic-deploy/aic-acionamento-deploy/api/v1/deploys/ambientes/' + param);
            },
            enviarDeploy: function (data) {
                console.log('parametro enviado para service -> ', data);
                return $http.post(URI + 'aic-deploy/aic-acionamento-deploy/api/v1/deploys/execucao', data);
            },
            usuarioLogado: function () {
                return $http.get(URI + 'aic-usuario/aic-usuario-logado/api/v1/dados-usuario-logado');
            },
            acessoMatricula: function (matricula) {
                return $http.get(URI + 'aic-acesso/acessos?matricula=' + matricula);
            },
            consultaLogBuild: function (siglas) {
                console.log('parametro enviado para service -> ', siglas);
                return $http.post(URI + 'aic-log/aic-log-esteira/api/v1/build/consulta/log', siglas);
            },
            consultaLogDeploy: function (siglas) {
                console.log('parametro enviado para service -> ', siglas);
                return $http.post(URI + 'aic-log/aic-log-esteira/api/v1/deploy/consulta/log', siglas);
            },
            consultaLogComponente: function (nomeComponente) {
                console.log('parametro enviado para service -> ', nomeComponente);
                return $http.post(URI + 'aic-log/aic-log-esteira/api/v1/consulta/componente', nomeComponente);
            }
        };

        return factory;
    }
})(angular);

我已经将karma config配置为可以在PhantomJS和chrome上运行,但是我已经在aic-solicitacao.controller-spec.js上启动了一些代码,但这给了我很多错误。

错误,例如: HeadlessChrome 75.0.3770(Linux 0.0.0)solicitacaoController应该添加以获得复杂的结果并将其添加到失败的结果数组中。

谢谢。

0 个答案:

没有答案
相关问题