2017-02-01 11 views
0

У меня есть тестовый пример, который необходимо изменить для каждого из них(), т.е. для первого тестового примера он должен быть как insert для 2-го тестового случая scope.action='update', а для 3-го тестового примера он должен быть scope.action='delete'. Как я могу это достичь.Как изменить переменную области в карме

'use strict';

описывают ('модуль', приложение функции() {

beforeEach(module('sampleApp')); 

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

describe('TestController', function() { 
    var scope, controller; 
     beforeEach(inject(function($rootScope, $controller) { 
      scope = $rootScope.$new(); 
      controller = $controller; 
      controller('BaseController', {$scope: scope}); 
      controller('TestController', { 
      $scope: scope 
     }); 
     scope.action="insert" ; 
    })); 
    it('Should return type insert', function() { 
     expect(scope.getActionType()).toBe('insert'); 
    }); 
    it('Should return type update', function() { 
     expect(scope.getActionType()).toBe('update'); 
    }); 
    it('Should return type delete', function() { 
     expect(scope.getActionType()).toBe('delete'); 
    }); 

}); });

ответ

0

Вы достигнете этого через описание в описании. Внешняя beforeEach() блок устанавливает вещи, но внутренние, установить объем:

describe('Test Controller',() => { 
    beforeEach(() => { 
    // In here, do what you currently have in your beforeEach 
    // but NOT the scope.action; EXCEPT the controller; 
    }); 

    describe('Test 1',() => { 
    beforeEach(() => { 
     scope.action = 'Insert' 
     controller('TestController', { $scope: scope }); 
    }); 
    it('First Test',() => {}); 
    }); 

    describe('Test 2',() => { 
    beforeEach(() => { 
     scope.action = 'Update'; 
     controller('TestController', { $scope: scope }); 
    }); 
    it('Second Test',() => {}); 
    }); 

    describe('Test 3',() => { 
    beforeEach(() => { 
     scope.action = 'Delete'; 
     controller('TestController', { $scope: scope }); 
    }); 
    it('Third Test',() => {}); 
    }); 
}); 
+0

значение 'scope.action' не назначая для каждого теста casescope.action получать«» –

+0

Я изменил ответ немного, посмотрите, работает ли это для вас. @VenkatLokeswar – rrd