単体テストの選択ボックスで 1 つ以上の項目を強調表示しようとしています。Karma、Jasmine、PhantomJS、AngularJS、JQLite、CoffeeScript を使用しています。
私のリストには [「バナナ」、「りんご」、「オレンジ」] の項目があります。
値を直接設定してみました:
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() は [] に等しくなります。