2

統合テスト内からソート可能な jQuery で作成されたソートをテストしたいと考えています。そうするために、テスト フレームワーク (カピバラ、セレン) を呼び出すことができますpage.execute_script("activeAdminSortable().sortable().update()")

適切なパラメーターでイベントをトリガーすることによりupdate、ドラッグ アンド ドロップをシミュレートして、それが機能するかどうかをテストできます。JavaScript コードの関連部分は次のとおりです。

(function($) {
  $(document).ready(function() {
    $('tbody .grabber').parents('tbody').activeAdminSortable();
  });

  $.fn.activeAdminSortable = function() {
    this.sortable({
      update: function(event, ui) {
        $.ajax({
          axis: 'y',
          cursor: 'move',
          url: ui.item.find('[data-sort-url]').data('sort-url'),
          type: 'post',
          data: { position: ui.item.index() + 1 },
          success: activeAdminSortableFlashFinished
        });
      }
    });

    this.disableSelection();
  }
})(jQuery);

イベントをトリガーしupdateて正しいパラメーターを渡す方法を見つける必要があります。eventそのような, anduiパラメータを作成する簡単な方法はありますか? をトリガーしupdateます。

別の方法として、アイテムを実際に取得、ドラッグ、ドロップする JavaScript を作成することもできますが、それはかなり脆いように思えます。それとも些細なことですか?

4

2 に答える 2

1

私は$('#sortable').trigger('sortupdate')これと同じ目的でうまく使用しています。

于 2013-10-31T01:28:35.187 に答える