0
我想測試我的註冊和使用RSpec的,水豚和factoryGirlRSpec的和水豚測試色器件註冊,用戶已經存在故障
的問題是,測試持續失敗與此登入測試通過色器件登錄從ActiveRecord的消息:
的ActiveRecord :: RecordInvalid: 驗證失敗:電子郵件已經採取
這些都是我的測試:
describe "GET /users/sign_up" do
it "register user and send email" do
user = FactoryGirl.build(:user)
visit new_user_registration_path
fill_in "Email", :with => user.email
fill_in "Password", :with => user.password
fill_in "Password confirmation", :with => user.password
fill_in "Name", :with => user.name
click_button "Sign up"
ActionMailer::Base.deliveries.last.to.should include(user.email)
page.should_not have_content("Password confirmation")
end
end
和登入測試:在尋找解決的辦法
describe "GET /users/sign_in" do
it "try to login email password" do
user = FactoryGirl.create(:user)
visit new_user_session_path
fill_in "Email", :with => user.email
fill_in "Password", :with => user.password
click_button "Sign in"
page.should have_content("Signed in successfully.")
end
end
我看到一些人加入database_cleaner並表示,假設幫助。所以我說的database_cleaner寶石 並添加這些行到我的spec_helper.rb文件:
config.use_transactional_fixtures = false
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
,但它仍然沒有工作。
會喜歡一些指導或想法。謝謝!
增加工廠女孩代碼:
require 'factory_girl'
FactoryGirl.define do
factory :user do |f|
f.sequence(:email) {|n| "dodo#{n}@gmail.com"}
f.password "secret123"
f.name "dodo"
end
factory :partner do |f|
f.company "spectoos"
end
end
可以包含用戶的工廠代碼嗎? – toms
已添加。感謝 –
只是一個完整的檢查,但用戶是否可以從以前的測試中存在?你有沒有嘗試從測試數據庫中刪除所有用戶? – toms