2015-01-28 2 views
1

Я пытаюсь проверить случай, когда выберите изменения, и я, кажется, возникли проблемы - Вот что яУгловое, тестирование выбрать с жасмином

тест -

describe('Unit: MainCtrl', function() { 
// Load the module with MainCtrl 
beforeEach(module('myApp')); 

    var ctrl, scope; 
    // inject the $controller and $rootScope services 
    // in the beforeEach block 
beforeEach(inject(function($controller, $rootScope) { 
// Create a new scope that's a child of the $rootScope 
scope = $rootScope.$new(); 
// Create the controller 
ctrl = $controller('MainCtrl', { 
    $scope: scope 
}); 

})); 

it('should create $scope.myPass when type of pass is selected and purchasePass is run', 
function() { 
    expect(scope.myPass).toBeUndefined(); 
    select('itemSelected').option(0); 
    scope.purchasePass(); 
    expect(scope.myPass).toEqual(5); 
}); 
}) 

А внутри шаблон у меня есть

<select ng-model="itemSelected" ng-options="item as item.name for item in selectItems"> </select> 

И это дает мне обратно ошибку -

ReferenceError: Can't find variable: select

Говорит, что у меня нет выбора переменной, но я не уверен, что я делаю неправильно, чтобы вызвать это. Был бы очень признателен за помощь. Благодаря!

ответ

2

select('itemSelected').option(0);

, где вы получили эти функции «выбрать» и «вариант»?

Если вы хотите изменить значение, вы можете напрямую изменить его на сферу:

scope.itemSelected = 1; 
scope.$digest(); // if you have $watch, and want to trigger it 
+0

Я думаю, что 'выбрать/option' является транспортир синтаксис для E2E тестов, которые не доступны в стандартных тестах Jasmine , –

+0

Нет, у Protractor нет методов 'select/option'. Он имеет разные методы, такие как 'element (by.tagName ('select'))', 'element (by.css ('select option'))' – shlensky

+1

@shlensky, из какой рамки это? – IamStalker