如何对传递给JavaScript函数的匿名回调进行单元测试?
我正在创建一个传递回调函数的jQuery UI自动完成小部件,如下所示:如何对传递给JavaScript函数的匿名回调进行单元测试?,javascript,unit-testing,Javascript,Unit Testing,我正在创建一个传递回调函数的jQuery UI自动完成小部件,如下所示: input.autocomplete( { ..., select: function ( event, ui ) { valueField.val( ui.item.id ); }, ... } ); 如何对select函数进行单元测试,以断言调用该函数时,值字段会使用正确的值进行更新?使用可以捕获传递到自动完成函数的参数,例如: var params; when( in
input.autocomplete( {
...,
select: function ( event, ui ) {
valueField.val( ui.item.id );
},
...
} );
如何对select
函数进行单元测试,以断言调用该函数时,值字段
会使用正确的值进行更新?使用可以捕获传递到自动完成
函数的参数,例如:
var params;
when( input ).autocomplete().then( function ( p ) {
params = p;
} );
这样做可以保存对匿名函数的引用,以便以后可以调用它
params.select( null, { item: { id: someId } } );
verify( valueField ).val( someId );
此技术也可用于私有函数,例如,当使用时。使用您可以捕获传递到自动完成
函数的参数,例如:
var params;
when( input ).autocomplete().then( function ( p ) {
params = p;
} );
这样做可以保存对匿名函数的引用,以便以后可以调用它
params.select( null, { item: { id: someId } } );
verify( valueField ).val( someId );
此技术也可用于私有函数,例如,在使用时。如果您想对javascript进行单元测试,最好的计划是为回调创建一流函数 如果您想对javascript进行单元测试,最好的计划是为回调创建一流函数 这是可行的,但是这样你就失去了私有或匿名函数的优势。你可以决定哪一个对你来说更重要。这是可行的,但是你失去了私有函数或匿名函数的优势。这是真的。你可以决定哪个对你更重要。