2016-12-19 44 views
0

我正在使用protractor測試一個基於ionic 2angular 2的應用程序。我想測試是否以及何時檢查ion-checkbox。假設只有一個在頁面複選框,我已經試過這樣:如何測試一個複選框是否在離子2中被選中

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

以上測試不正確的屬性​​總是false即使複選框被選中的工作。據我所知,沒有財產isChecked()。那我該如何測試呢?

+0

你可以分享你的HTML頁面? –

回答

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? 
    }; 
    }; 
+0

我沒有在angular2中看到'$ scope' – yurzui

+0

您不需要'$ scope',那就是我如何將'checkItem'定義爲一個可以被視圖訪問的函數。 – Olli

0

嘗試將視圖上的對象與控制器綁定。

在你的HTML組件添加:

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

而且你的控制器上宣佈它作爲一個變量名yourControllerVariableName和嘗試以下操作:

expect(yourControllerVariableName.checked).toBe(true); 
相關問題