今天推荐一款来自angularjs源码的单元测试辅助库browserTrigger,这是来自于ngScenario的一段代码。主要用户触发浏览器型行为更新ng中scope view model的值。
这是angularjs源码中单元测试的使用browserTrigger的实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
it(
'should set the model to empty string when empty option is selected'
,
function
() {
scope.robot =
'x'
;
compile(
'<select ng-model="robot">'
+
'<option value="">--select--</option>'
+
'<option value="x">robot x</option>'
+
'<option value="y">robot y</option>'
+
'</select>'
);
expect(element).toEqualSelect(
''
, [
'x'
],
'y'
);
browserTrigger(element.find(
'option'
).eq(0));
expect(element).toEqualSelect([
''
],
'x'
,
'y'
);
expect(scope.robot).toBe(
''
);
});
|
在这段代码中给browserTrigger传入你希望选择的select option,则它会帮助你tigger change,选中当前option,更触发更新ng select的viewmodel。
在browserTrigger中还为我们做了很多其他输入框或者html控件的触发接口,同时也加入了浏览器的兼容性。使得我们的测试更加方便不用考虑浏览器兼容性或者不同的html控件trigger不同的事件去更新scope的值。
具体更多信息请参考ng的官方测试和browserTrigger源码。
本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/p/3807063.html,如需转载请自行联系原作者