source

Angular에서 확인란이 선택되었을 때 검증하는 방법JS e2e 테스트?

ittop 2023. 3. 18. 09:23
반응형

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

반응형