2014-11-03 3 views
0

У меня есть ajaxEditableLabelWithIcon, который является ajaxEditableLabel с измененным HTML, который содержит значок. Когда пользователь нажимает этот значок, поле редактора становится редактируемым, и когда он снова нажимает, содержимое сохраняется. Мы сделали это с помощью JQuery:Javascript function Wicket test

function editOrSubmit(element){ 

panel = element.parentElement; 
    label = panel.children[0]; 
    if(panel.find){ 
     e = $.Event('keypress'); 
     e.which = 13; // Enter key 
     label.trigger(e); //submit the FormTester 
    } 
    else{ 
     label.click(); //Wich make the label editable 
    } 
} 

Теперь я хочу протестировать его с помощью JUnit. Поскольку я не могу просто нажать на иконке, я попытался создать яваскрипт ярлык для этой функции, а затем создать робот, чтобы вызвать Keypressed события:

// defining flags 
var isCtrl = false; 
var isShift = false; 

$(document).ready(function() { 
    // action on key up 
    $(document).keyup(function(e) { 
     if(e.which == 17) { 
      isCtrl = false; 
     } 
     if(e.which == 16) { 
      isShift = false; 
     } 
    }); 
    // action on key down 
    $(document).keydown(function(e) { 
     if(e.which == 17) { 
      isCtrl = true; 
     } 
     if(e.which == 16) { 
      isShift = true; 
     } 
     // En cas d'appui sur ctrl+Shift+F9 en même temps, la méthode editOrSubmit est appelée 
     if(e.which == 120 && isCtrl && isShift) { 
      var icon = document.getElementById("icon"); 
      editOrSubmit(icon); 
     } 
    }); 

}); 

Это хорошо работает в браузере, но внутри тест ничего не происходит? Ты знаешь почему ?

ответ

-1

К сожалению, Wicket и JUnit не могут протестировать код JavaScript, а просто код Java. Однако сам Wicket использует Maven и frontend-maven-plugin для запуска тестов QUnit через Maven. Вы можете взглянуть на код Wicket внутри тестирования/wicket-js-tests (https://github.com/apache/wicket/tree/master/testing/wicket-js-tests), чтобы узнать, как это делается Wicket, и вы можете скопировать код, необходимый для запуска тестов.