Почему мои тесты не работают для этой формы? - PullRequest
1 голос
/ 27 сентября 2011

В Firefox, если я пытаюсь отправить сообщение без заголовка, я получаю: 1 ошибка запрещает сохранение этого сообщения .

Но при запуске теста.Это другая история.

В модели моего поста validates_presence_of :title.Мой тест выглядит так:

require 'spec_helper'

describe 'Users' do

  it 'registered users should not be able to post without a title', :js => true do
    user = Factory(:user)
    visit new_post_path
    current_path.should eq(new_post_path)

    fill_in 'post[markdown_description]', :with => 'Bar'
    click_on 'Submit your post'

    page.should have_content('error')
  end

end

Кстати, я использую Selenium (:js => true), потому что моя кнопка отправки на самом деле является якорной ссылкой с некоторыми JS.Обычно при щелчке по ссылке JS запускает форму для отправки.

Rspec возвращает:

Running: spec/requests/users_spec.rb
F

Failures:

  1) Users registered users should be able to post
     Failure/Error: page.should have_content('error')
       expected there to be content "error" in ""
     # ./spec/requests/users_spec.rb:13:in `block (2 levels) in <top (required)>'

Finished in 7.9 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/requests/users_spec.rb:4 # Users registered users should be able to post

1 Ответ

0 голосов
/ 29 сентября 2011

Запрос не может быть выполнен до действия контроллера, если у вас есть before_filters. Проверьте журнал, чтобы убедиться, что правильные параметры публикуются и действие не перенаправляет.

Другой вариант - включить это в вашу спецификацию:

click_on 'Submit your post'
save_and_open_page

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

...