[英]How can I unit test anonymous callbacks passed to JavaScript functions?
我正在創建一個傳遞回調函數的jQuery UI自動完成小部件,如下所示:
input.autocomplete( {
...,
select: function ( event, ui ) {
valueField.val( ui.item.id );
},
...
} );
如何對select
函數進行單元測試以斷言在調用valueField
已將其正確值更新了?
如果要對JavaScript進行單元測試,最好的計划是為回調創建一流的函數。
使用JsMockito,您可以捕獲傳遞給autocomplete
功能的參數,例如:
var params;
when( input ).autocomplete().then( function ( p ) {
params = p;
} );
這樣,您將保存對匿名函數的引用,以便以后可以調用它。
params.select( null, { item: { id: someId } } );
verify( valueField ).val( someId );
例如,在使用模塊模式時,此技術還可用於私有功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.