我一直在尝试AngularJS e2e测试,并且在确定是否选中复选框时陷入困境。
我用端为端测试复选框输入作为样品(见 端对端测试 中的标签 实施例 )。
HTML片段:
Value1: <input type="checkbox" ng-model="value1"> <br/>
控制器代码段:
function Ctrl($scope) { $scope.value1 = true; }
这是我尝试过的:
1) expect(binding('value1')).toEqual('true');
expect(binding('value1')).toEqual('true');
只要value1在屏幕上显示,它就可以在样品首尾测试中起作用{{value1}}。如果您在本地测试并删除`{{value1}},则绑定测试将失败。在我的大多数实际示例中,我并未在屏幕上的任何位置显示复选框值。
value1
{{value1}}
2) expect(input('value1').val()).toEqual('true');
expect(input('value1').val()).toEqual('true');
该值将始终默认为,on并且与复选框是否处于选中状态无关。
on
注意: 看来Angular E2E测试将来会被Protractor取代(请参阅docs)
由于存在相同的问题,我对此问题表示赞同。我在测试中使用了以下解决方法,但希望能找到更好的方法。
expect( element('input[ng-model="value1"]').attr('checked') ).toBeTruthy();