如何测试是否在离子2中选中了复选框

时间:2016-12-19 08:47:55

标签: angular checkbox protractor ionic2

我正在使用ionic 2基于angular 2protractor测试应用。我想测试是否以及何时检查ion-checkbox。假设页面中只有一个复选框,我试过这个:

var checkBox = element(by.css('ion-checkbox'));
expect(checkBox.isSelected()).toBe(true);

上述测试无法正常运行,因为即使选中了复选框,属性isSelected()始终为false。据我所知,没有财产isChecked()。我怎么测试呢?

2 个答案:

答案 0 :(得分:0)

有一个类似的问题,我这样做的方式是使用Javascript,你基本上使用indexOf检查它的存在,检查下面的代码并适当地适用于你的情况。

  $scope.checkItem = function(item) {
    console.log(item);
    // Picked items contain an array you push items into when the checkbox is clicked
    var check = pickedItems.toString();
    var ind = check.indexOf(item);
    console.log(ind);
    if (ind === -1) {
      // not checked
      pickedItems.push(item);
      console.log('Picked Items: '+pickedItems);
    } else {
      // checked, so maybe remove from array?
    };
  };

答案 1 :(得分:0)

尝试将视图上的对象与控制器绑定。

在HTML组件上添加:

<ion-checkbox [(ngModel)]="yourControllerVariableName"></ion-checkbox>

在您的控制器上将其声明为名为 yourControllerVariableName 的变量,然后尝试以下操作:

expect(yourControllerVariableName.checked).toBe(true);