开发者

Why isn't my tests working for this form?

开发者 https://www.devze.com 2023-04-08 06:05 出处:网络
In Firefox, if I try to submit a post without a title, I get: 1 error prohibited this post from being saved.

In Firefox, if I try to submit a post without a title, I get: 1 error prohibited this post from being saved.

But when I run my test. It's a different story.

My Post model has validates_presence_of :title. My test looks like:

require 'spec_helper'

describe 'Users' do

  it 'registered users should not be able to post without a title', :js => 开发者_如何学Pythontrue 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

By the way, I am using Selenium (:js => true), because my submit button is actually an anchor link with some JS. Basically, when the link is clicked, JS triggers the form to be submitted.

Rspec returns:

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


The request may not make it to the controller action if you have before_filters. Check the log to make sure that the correct parameters are posting and that the action is not redirecting.

Another option is to include this in your spec:

click_on 'Submit your post'
save_and_open_page

which opens the current page in the browser so you can see what is actually being rendered.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号