[英]How best to unit-test an events abstraction?
我有兩個問題:
1.)如何最好地對事件偵聽器進行單元測試? 2.)我是否正確理解isHostMethod?
我正在嘗試對事件偵聽器抽象進行單元測試,但是我認為可以測試它的唯一方法是針對窗口“加載”事件。
我在這里有一個代碼示例: https : //gist.github.com/1502326
另外,我正在使用David Mark(@cinsoft)的isHostMethod來檢測相關的宿主對象支持,但想知道我是否正確理解了這些概念? 因此,舉例來說,我是否認為主機對象/方法應該在以下條件下可用(盡管我知道這些“條件”是不可靠的)是正確的:
如果這些條件中的任何一個成立,則(再次,不可靠地) 應意味着可以使用指定的宿主方法。
但是,即使主機對象/方法的實現方式仍可能與規范指示的方式不同,因此在我創建對象並查看事件是否被觸發(或類似事件)的情況下執行完整的“功能檢測”會更加准確。測試)?
感謝您對這兩個查詢的任何建議。
最簡單的方法是使用綜合點擊事件。 給定要點中的代碼,您可以使用以下命令進行測試:
var evt;
events.add( document.body, "click", function() {
// swap this for an assert(true, "message");
console.log( true, "supported" );
});
// IE nodes support a click() method
if ( document.body.click ) {
document.body.click();
} else {
// Standards based events have to be created, initialized and dispatched.
evt = document.createEvent("MouseEvents");
evt.initMouseEvent(
"click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null
);
document.body.dispatchEvent( evt );
}
請參閱: http : //jsfiddle.net/rwaldron/CR4FC/
測試於:IE6,7,8; 鉻17; Firefox 10; Safari 5.1.2; 歌劇11
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.