小编Art*_*ult的帖子

FactoryGirl序列打破了我的rspec测试(我认为)

所以我在这里使用Rails 4创建一个Web应用程序,如果它有助于我在使用Mountain Lion的Mac上,使用Aptana Studio 3进行开发.

我正在尝试创建一个页面,列出并分页我的应用程序的用户.我正在使用will_paginate和bootstrap-will_paginate来做到这一点.当我使用我的数据库上的示例用户运行rails服务器时它非常有效,但是当我使用RSpec和FactoryGirl运行我的测试时,我对所有需要用户授权的页面的测试都无法正常工作.所以这就是我认为问题是FactoryGirl的原因.

以前,我的factories.rb看起来像这样,因为它只需要创建一个用户:

FactoryGirl.define do
  factory :user do
    username "example_user"
    password "foobar"
    password_confirmation "foobar"
  end
end
Run Code Online (Sandbox Code Playgroud)

现在我改变它来做到这一点:

FactoryGirl.define do
  factory :user do
    sequence(:username)  { |n| "Person_#{n}" }
    password "foobar"
    password_confirmation "foobar"
  end
 end
Run Code Online (Sandbox Code Playgroud)

以下是我的user_pages_spec文件的更改.在测试停止传递之前,这是我在工厂文件之外唯一改变的东西.这是它的差异:

   describe "index" do
-    before do
-      sign_in FactoryGirl.create(:user)
-      FactoryGirl.create(:user, username: "bananarama")
-      FactoryGirl.create(:user, username: "appleface")
+    let(:user) { FactoryGirl.create(:user) }
+    before(:each) do
+      sign_in user
       visit users_path
     end

     it { should have_title('All users') }
     it { should have_content('All users') …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails factory-bot

3
推荐指数
1
解决办法
4068
查看次数

标签 统计

factory-bot ×1

rspec ×1

ruby ×1

ruby-on-rails ×1