2013-08-01 4 views
0

ng-pattern을 유효성 검사에 사용하고 ng-show를 사용하여 오류 메시지를 표시합니다. 이 브라우저에서 잘 작동하지만 오류 메시지가 나타나면 테스트하려면 e2e 코드를 어떻게합니까?각도 e2e 테스트 ng-show

expected "" but was "\n   PName can be Alpha-Numeric up to 30 characters – spaces allowed, but no special characters" 

는 테스트 러너에 보인다 여기

input('test.pname').enter('cakes`'); 
    expect(element('#pnameValidate:visible').text()).toMatch(/up to 30 characters/); 
    input('test.pname').enter('cakes are good'); 
    expect(element('#pnameValidate:visible').text()).toBe(''); 

테스트 러너의 결과입니다 : 여기
<input type="text" ng-model="test.pname" name="pname" ng-maxlength="30" ng-pattern="/^[a-zA-Z0-9 ]*$/"/> 
<span class="custom-error" id="pnameValidate" ng-show="addProviderForm.pname.$error.pattern"> 
PName can be Alpha-Numeric up to 30 characters – spaces allowed, but no special characters</span> 

내 E2E 스크립트입니다 : 여기

내 HTML입니다 #pnameValidate는 e2e에서 지정하는 것과 관계없이 항상 표시됩니다.

답변

0

UI가 스크립트를 따라갈 수 있도록 대기 시간을 추가 했습니까?

input('test.pname').enter('cakes`'); 
expect(element('#pnameValidate:visible').count()).toBe(1); 
expect(element('#pnameValidate:visible').text()).toMatch(/up to 30 characters/); 
input('test.pname').enter('cakes are good'); 

setTimeout(function() { 
expect(element('#pnameValidate:visible').count()).toBe(0); 
    expect(element('#pnameValidate:visible').text()).toBe(''); 
}, 500); 
0

당신의 문제는 ".enter"

변화 그것에 ".sendKeys"

입니다