所以我在这里使用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)