0

Hello i have a problem with Rspec + Capybara. I wanna to test that my ajax comments can be post. My error is because a post doesn't create.

Failure/Error: page.should have_content('Could')

When i output @post i see

#<Post id: 1, title: "Deploying through ssh", body: "This is post about ssh", slug: deploying-through-ssh, published: nil, published_at: nil, created_at: "2013-02-05 17:37:39", updated_at: "2013-02-05 17:37:39", user_id: nil, meta_desc: nil> 

describe "Sending Comments" do
      before(:each) do
        @post = FactoryGirl.create(:post)
      end
      it "should allow user to post new comment", :js => true do
        visit post_path(@post)
        page.should have_content('Could')
        fill_in 'comment[name]', :with => "name"
        fill_in 'comment_email', :with => "email@mail.com"
        fill_in 'comment_content', :with => "content"
      end
    end
4

1 に答える 1

0

適切な設定を行わないと、テストと、selenium を使用したテストに使用されるサーバー ( :js => true) で 2 つの異なるデータベース接続が使用され、テストがトランザクションにラップされます。@postこれは、トランザクションの変更がコミットされていないため、テストで表示されるものがブラウザーに存在しないという状況につながります。

ここで説明されている共有接続を使用することも、トランザクション クリーニング戦略を使用しないこともできます。database-cleanerを探してください。

于 2013-02-06T22:11:45.000 に答える