Angular에서 확인란이 선택되었을 때 검증하는 방법JS e2e 테스트?
Angular를 써봤는데JS 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로 대체될 예정입니다(문서 참조).
Protractor 를 사용하고 있는 유저에게는, 이것만을 위한 webdriver is Selected() 가 있습니다.
부탁하는 대신checked
다음 작업을 수행할 수 있습니다.
expect(element(by.model('value1')).isSelected()).toBeTruthy();
나는 같은 문제가 있어서 이 질문을 상향 투표했다.나는 내 시험에서 다음과 같은 회피책을 사용했지만, 나는 더 나은 방법을 찾고 있다.
expect( element('input[ng-model="value1"]').attr('checked') ).toBeTruthy();
더 나은 방법이 있기를 바라지만, 해당 모델 바인딩과 일치하는 체크된 입력 요소의 수를 확인함으로써 이를 피할 수 있었습니다.
expect(element('input[ng-model="value1"]:checked').count()).toBe(1);
체크되지 않은 것이 있는지 여부를 확인할 때 적어도 하나의 단점은 요소가 존재하지 않는지 또는 오타가 있는지 여부입니다.다음 예시와 같이 값은 0입니다.
expect(element('input[ng-model="valueDoesNotExist"]:checked').count()).toBe(0);
언급URL : https://stackoverflow.com/questions/12485217/how-to-validate-when-a-checkbox-is-checked-in-angularjs-e2e-tests
'source' 카테고리의 다른 글
JSON 개체를 버퍼로 변환하고 버퍼를 JSON 개체로 변환 (0) | 2023.03.18 |
---|---|
WordPress 플러그인 현지화 (0) | 2023.03.18 |
데이터 플롯 업데이트 (0) | 2023.03.18 |
지시어로 부울 값 전달 (0) | 2023.03.18 |
Shared Preferences에 JSON 어레이를 저장해도 될까요? (0) | 2023.03.18 |