簡體   English   中英

如何對傳遞給JavaScript函數的匿名回調進行單元測試?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM