2013-04-27 5 views
1

В приложении Rails, над которым я работаю, у меня есть страница, на которой должно отображаться сообщение об ошибке, когда поле не заполняется и форма отправляется.Тестирование проверки клиента в представлениях Rails

Клиентская проверка на поле осуществляется с помощью JQuery и она отлично работает в браузере, когда я проверить его вручную

Форма остановлена ​​из их представления на всех, когда данные поля не введены Пользователь.

Какие варианты написать тест для этого

  1. Я посмотрел на Жасмин, но это, кажется, более полезным, когда я хочу, чтобы проверить саму яваскрипта функцию, не полезно, чтобы проверить, если событие правильно стрелять на странице. (дайте мне знать, если я ошибаюсь об этом)

  2. Я посмотрел на RSpec и написал тест, как этот

    require 'spec_helper' 
    describe 'Sample Test Page' do  
    
        it 'should show error when Some Field is not specified' do 
        visit '/sample_page' 
        click_button "Submit" 
        page.should have_content 'You forgot to Enter details in Some Field' 
        end 
    end 
    

но то, что происходит здесь в том, что форма получает представлена ​​без стрельбы проверки на всех, и я получаю ошибку (так как приложение выдает ошибку на пустое значение)

Что такое мой лучший вариант? Есть ли еще инструменты, которые помогут мне проверить это в философии Rails?

ответ

2

Если вам необходимо протестировать JavaScript в тестах интеграции, вам необходимо явно указать его, чтобы выбрать веб-драйвер, поддерживающий JavaScript.

В вашем случае вы использовали Webrat, он работает быстро, но не поддерживает JS, поэтому ваш тест не удался.

По умолчанию веб-драйвер для Javascript является Selenium. Чтобы включить его, просто измените эту строку

describe 'Sample Test Page' do 

Для

describe 'Sample Test Page', js: true do 

Тогда все испытания в этом блоке будет работать на Selenium. Вы увидите реальный браузер, чтобы запустить тест.

+0

Спасибо Билли, я попробую. – user773327

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