所以我在做一個web應用程序在這裏使用Rails 4,如果它幫助我用山獅,開發使用的Aptana Studio的3FactoryGirl序列打破了我的RSpec的測試(我認爲)
是在Mac上我正在嘗試創建一個頁面來列出並分頁我的應用程序的用戶。我使用will_paginate和bootstrap-will_paginate來做到這一點。當我在我的數據庫上使用示例用戶運行rails server時,它完美地工作,但是當我使用RSpec和FactoryGirl運行我的測試時,所有需要用戶授權的頁面的測試都不起作用。所以這就是爲什麼我認爲問題是FactoryGirl。
以前,我factories.rb這個樣子,因爲它只需要創建一個用戶:
FactoryGirl.define do
factory :user do
username "example_user"
password "foobar"
password_confirmation "foobar"
end
end
現在我改成了這樣:
FactoryGirl.define do
factory :user do
sequence(:username) { |n| "Person_#{n}" }
password "foobar"
password_confirmation "foobar"
end
end
而且這裏的變化到我的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') }
- it "should list each user" do
- User.all.each do |user|
- expect(page).to have_selector('li', text: user.username)
+ describe "pagination" do
+
+ before(:all) { 30.times { FactoryGirl.create(:user) } }
+ after(:all) { User.delete_all }
+
+ it { should have_selector('div.pagination') }
+
+ it "should list each user" do
+ User.paginate(page: 1).each do |user|
+ expect(page).to have_selector('li', text: user.username)
+ end
end
end
end
有什麼缺失?還有什麼我應該看的?再次,失敗的測試是關於授權的頁面上的測試。其中包括一些在我的授權頁面.pb
非常感謝!