mercredi 27 janvier 2016

JS Unit Testing Using karma and Jesmine

I have written a unit test like below

describe('modals', function() {
beforeEach(module('DetailsApp'));

var controller, rootScope, templateCache, compile, http, httpBackend;

var uibModalInstance = {
    dismiss: function(message) {

    },
    close: function(message) {

    }
};

var plugins = {
    get: function(plugin) {
        if(plugin == 'Workorder'){
            return {
                'workorder_id': 'workorder_id'
            };
        } else if(plugin == 'CompanyInfo'){
            return {
                'company_name': 'company_name',
                'company_id': 'company_id'
            };
        }
    }
};

beforeEach(module(function($provide) {
    $provide.value('$uibModalInstance', uibModalInstance);
    $provide.value('plugins', plugins);
}));

beforeEach(inject(function($controller, $templateCache, $compile, $rootScope, $http, $httpBackend) {
    controller = $controller;
    templateCache = $templateCache;
    compile = $compile;
    rootScope = $rootScope;
    http = $http;
    httpBackend = $httpBackend;
}));

describe('When modal functions are called', function() {
    it('they should be called correctly', function() {
        var $scope = {};
        var companyRatingHistory = controller('companyRatingHistory', { $scope: $scope });

        spyOn(uibModalInstance, 'dismiss');
        spyOn(uibModalInstance, 'close');

        $scope.cancel();
        expect(uibModalInstance.dismiss).toHaveBeenCalledWith('cancel');

        $scope.close('close');
        expect(uibModalInstance.close).toHaveBeenCalledWith('close');
    });
});  });

and found that my code coverage shows an E in plugins else block like below

else if(plugin == 'CompanyInfo'){
            return {
                'company_name': 'company_name',
                'company_id': 'company_id'
            };
        }

What i have missed in my test. Advance thanks and get any suggestions from anybody who helps me.

Aucun commentaire:

Enregistrer un commentaire