2013-08-01 6 views
0

Я использую ng-pattern для проверки, используйте ng-show для отображения сообщения об ошибке. Это отлично работает в браузере, но как мне его закодировать в e2e, чтобы проверить, появляется ли сообщение об ошибке?Угловое тестирование e2e ng-show

Вот мой HTML:

<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 сценарий:

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(''); 

Вот результат от тестового бегуна:

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

, кажется, в тестовом бегуна #pnameValidate всегда показывает, что я указываю в e2e.

ответ

0

Вы пытались добавить время ожидания к тесту, чтобы пользовательский интерфейс мог догнать скрипт?

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

Ваша проблема "Введите желанную"

изменить его на ".sendKeys"

Смежные вопросы