2016-09-22 11 views
0

以下は、sap.m.Selectにxyzという名前の項目が含まれているかどうかをテストして選択する典型的なアクションの下です。SAPUI5 OPA5 selectイベントをトリガーする方法

success: function(oSelect) { 
    var oItems = oSelect.getItems(); 
    $.each(oItems, function(i,v) { 
     if(oItems[i].getText() === "TestItemNameILikeToSelect") { 
      oTestOpa5TestItem = oItems[i]; 
     } 
    }); 
    if(oTestOpa5TestItem !== null) { 
     oSelect.setSelectedKey(oTestOpa5TestItem.getKey()); 
     oTestOpa5TestItem.$().trigger("tap"); 
    } 
}, 

私はテストの実行を開始すると、それが正しくリストから適切な項目を選択し、ブラウザで目に見えて、それを設定しますが、それは背後にある添付イベントトリガされませんん(たとえば、変更を=「onListItemChanged」) 。 私のアプリケーションは正常に動作しますが、動作するテストを作成する方法が見つかりません。事前に

おかげ

答えて

1

OPA5ている「アクション」のインターフェイスと2つのデフォルトの実装例'EnterText'と 'Press'。

When.waitFor({ 
    id: "myButton", 
     actions: new Press() 
    }); 

何を使用すると、「古いやり方」ですが、それはいくつかの欠点があります:

  • successブロックはと同期していないが推奨される使用は、このようなwaitFor()オプションにactionブロックを定義することですXHRリクエストはactionですが。
  • クリック/タップイベントをコントロールに送信するには、内部要素を選択する必要があります。 Click to Navコンテナを想像してください - 実際にクリックできる場所がいくつかあります。アクションはそれらの詳細を処理し、依存する標準的な動作を定義します。
  • 選択ロジックをmatchersブロック内にカプセル化し、それをカスタムマッチャーに抽象化することをお勧めします。このようにしてブロックsuccessがきれいになり、テストのいくつかの場所で正規表現を再利用できます。

OPA5 Actions

+0

感謝。短い追加:ドロップダウン(プレスイベント)を開き、キーを設定して表示される要素をタップする必要があるようです。 – jens

+0

これは1つの方法であり、間違いなく機能します。しかしOPA5では、より良い方法があります - ドロップダウンコントロールと一致させて、.setSelected()メソッドを呼び出して必要な項目を選択するだけです。 – Max

関連する問題