一尘不染

如何在AngularJS e2e测试中选中复选框时进行验证?

angularjs

我一直在尝试AngularJS
e2e测试,
并且在确定是否选中复选框时陷入困境。

我用端为端测试复选框输入作为样品(见
端对端测试 中的标签 实施例 )。

HTML片段:

Value1: <input type="checkbox" ng-model="value1"> <br/>

控制器代码段:

function Ctrl($scope) {
  $scope.value1 = true;
}

这是我尝试过的:

1) expect(binding('value1')).toEqual('true');

只要value1在屏幕上显示,它就可以在样品首尾测试中起作用{{value1}}。如果您在本地测试并删除`{{value1}},则绑定测试将失败。在我的大多数实际示例中,我并未在屏幕上的任何位置显示复选框值。

2) expect(input('value1').val()).toEqual('true');

该值将始终默认为,on并且与复选框是否处于选中状态无关。


注意: 看来Angular
E2E测试将来会被Protractor取代(请参阅docs


阅读 197

收藏
2020-07-04

共1个答案

一尘不染

由于存在相同的问题,我对此问题表示赞同。我在测试中使用了以下解决方法,但希望能找到更好的方法。

expect( element('input[ng-model="value1"]').attr('checked') ).toBeTruthy();
2020-07-04