我試圖在單元測試中的選擇框中突出顯示一個或多個項目。我使用Karma,Jasmine和PhantomJS,AngularJS,JQLite,CoffeeScript。使用JQLite如何在選擇框中選擇一個或多個項目
我的清單有物品[「香蕉」,「蘋果」,「橙」]。
我試過直接設置值:
sourceList = element.find('select').eq(1)
sourceList.val("[banana]").triggerHandler('change');
// Or
sourceList.val("banana").triggerHandler('change');
當我sourceList.val()它沒有設置。
我試過觸發事件來選擇它。注意我不能做一個「點擊」事件,因爲我點擊了另一個事件。
sourceList.find('option').eq(0).triggerHandler("active");
sourceList.find('option').eq(0).triggerHandler("focus");
sourceList.find('option').eq(0).triggerHandler("drag");
sourceList.find('option').eq(0).triggerHandler("dragLeave");
我試圖使用這些的selectedIndex
sourceList.selectedIndex = 1
似乎都不突出或選擇項目。我沒有想法。有沒有人完成這個?
這裏是我試圖測試指令的方法:
// Clicks on the add button. Should take all items highlighted and move them over
$scope.add = function(){
var sourceList = $element.find('select').eq(1);
angular.forEach(sourceList.val(), function(val, index){
$scope.selected.push({
text: val
});
});
checkListDupes();
};
,當我在瀏覽器中手動完成此代碼的工作,但我似乎無法讓我的測試,以突出一些項目在點擊添加按鈕之前的選擇框中。所以當這段代碼執行時,sourceList.val()等於[]。
你能看看這個http://stackoverflow.com/a/22333324/2435473 –
我不認爲這解決了我的問題。我實際上已經使用點擊事件。問題是我無法通過jQlite獲取select元素的選項。 – Corey
你能提供你的指令嗎? –