我正在创建一个传递回调函数的jQuery UI自动完成小部件,如下所示:
input.autocomplete( {
...,
select: function ( event, ui ) {
valueField.val( ui.item.id );
},
...
} );
我如何对select
函数进行单元测试,以断言当调用valueField
时,使用正确的值更新?{/ p>
答案 0 :(得分:1)
如果你想对你的javascript进行单元测试,最好的计划是为你的回调创建一流的函数。
答案 1 :(得分:0)
使用JsMockito,您可以捕获传递给autocomplete
函数的参数,例如:
var params;
when( input ).autocomplete().then( function ( p ) {
params = p;
} );
通过执行此操作,您将保存对匿名函数的引用,以便稍后调用它。
params.select( null, { item: { id: someId } } );
verify( valueField ).val( someId );
此技术也可用于私有功能,例如,使用module pattern时。