Javascript 如何使用ng型号选项强制输入更改触发器';安格拉斯的德布恩是谁?
我正在测试我的图书馆。问题是为了避免经常更新,我在文本字段中进行了去盎司处理 像 它将失败,因为我必须添加$timeout。因此,10次测试=5秒延迟,这是不合适的Javascript 如何使用ng型号选项强制输入更改触发器';安格拉斯的德布恩是谁?,javascript,angularjs,Javascript,Angularjs,我正在测试我的图书馆。问题是为了避免经常更新,我在文本字段中进行了去盎司处理 像 它将失败,因为我必须添加$timeout。因此,10次测试=5秒延迟,这是不合适的 如何强制更改触发器以避免去抖动或触发模糊?似乎只是使用$timeout,即使没有延迟也能做到这一点: $timeout(function(){ expect(scope.obj.name).toEqual('Max'); }) 模拟的$timeout服务有一个flush方法,您可以使用它在单元测试中触发更新 it('sho
如何强制
更改
触发器以避免去抖动或触发模糊
?似乎只是使用$timeout
,即使没有延迟
也能做到这一点:
$timeout(function(){
expect(scope.obj.name).toEqual('Max');
})
模拟的
$timeout
服务有一个flush
方法,您可以使用它在单元测试中触发更新
it('should set with debounce', inject(function ($timeout) {
input.val('Max').triggerHandler('input');
$timeout.flush();
expect(scope.obj.name).toEqual('Max');
}));
谢谢,这很有效。奇怪的是,在浏览器中setTimeout可以工作,而在单元测试中却不能。
$timeout(function(){
expect(scope.obj.name).toEqual('Max');
})
it('should set with debounce', inject(function ($timeout) {
input.val('Max').triggerHandler('input');
$timeout.flush();
expect(scope.obj.name).toEqual('Max');
}));