2014-11-03 119 views
0

我有一个ajaxEditableLabelWithIcon,它是一个ajaxEditableLabel,带有一个包含图标的修改过的HTML。当用户点击该图标时,编辑器栏位变为可编辑,当他再次点击时,内容被保存。我们使用JQuery做到了这一点:Javascript函数Wicket测试

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测试它。既然不能直接点击图标,我试图创建一个javascript快捷方式的功能,然后创建一个机器人触发事件,则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和前端Maven插件来通过Maven运行QUnit测试。您可以在testing/wicket-js-tests(https://github.com/apache/wicket/tree/master/testing/wicket-js-tests)内查看Wicket代码,以了解Wicket如何完成此操作,并且您可以复制运行测试所需的代码。