0

您好,我对 Rspec + Capybara 有疑问。我想测试我的 ajax 评论是否可以发布。我的错误是因为没有创建帖子。

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

当我输出@post 我看到

#<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) 进行测试的服务器将使用两个不同的数据库连接并将测试包装到事务中。这导致了这种情况,即您在测试中看到的@post内容在浏览器中不存在,因为事务中的更改未提交。

您可以使用此处描述的共享连接,也可以不使用事务清理策略。看看database-cleaner

于 2013-02-06T22:11:45.000 回答