Как протестировать перетаскивание html5 в qunit

#javascript #jquery #html #backbone.js #qunit

#javascript #jquery #HTML #backbone.js #qunit

Вопрос:

Я хочу протестировать перетаскивание html 5, которое, как я думал, будет работать:

Из тестового файла

 var event = new Event('drop',{
    'originalEvent':{
        'dataTransfer':{
            'getData': function(){
                return 'tr#0.sprint'
             }
         }
     },
     stopPropagation': function() {return;}
}
$('tr#0.sprint').trigger(event);
  

Это делается для того, чтобы событие запускалось, и все функции были настроены на возврат того, что я хочу протестировать.

актуальный скрипт:

Backbone framework

 myView = Backbone.View.extend({

    ...

    drop : function(event)
    {
        event.stopPropagation();
        var data = event.originalEvent.dataTransfer.getData('element');

        // some code

    },

    ...

};
  

К сожалению, эта ошибка связана с Illigal function call

Если я удаляю dataTransfer объект и пытаюсь установить его самостоятельно, я получаю неопределенную ошибку

Ответ №1:

Если вы установите его немного по-другому, это будет иметь огромное значение:

 var event = new Event('drop',{
     stopPropagation: function() {return;}
});
event['originalEvent'] ={
    'dataTransfer':{
        'getData': function(){
            return 'tr#0.sprint'
        }
    }
};
$('tr#0.sprint').trigger(event);
  

Это более «ручной» способ настройки атрибутов объекта javascript. Аргументы, добавленные в конструктор события, проверяются конструкцией объекта event.