我所做的是 - 創建內部規範文件/支持/ utilities.rb 和我utilities.rb有這個
def sign_in(user)
visit new_user_session_path
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Sign in"
end
在spec/requests/authentication_pages_spec.rb(它由我創建)之後,並且設計了這種認證方式
require 'spec_helper'
describe 'UserPages' do
subject { page }
describe "allow registered user to sign in successfully" do
before do
user = FactoryGirl.create(:user)
sign_in user
end
it { should have_link("Logout") }
it { should_not have_link("Login") }
end
describe "edit" do
before do
@user = FactoryGirl.create(:user)
sign_in @user
visit edit_user_registration_path
end
describe "with valid information" do
let!(:new_name) { "New Name" }
let!(:new_password) { "newpassword" }
before do
fill_in "Name", with: new_name
fill_in "Email", with: @user.email
fill_in "user[password]", with: new_password
fill_in "user[password_confirmation]", with: new_password
click_button "Update"
end
specify { @user.reload.name.should == new_name }
end
end
end
和我的規格/ factories.rb有這個
FactoryGirl.define do
factory :user do
sequence(:username) { |n| "Person_#{n}" }
sequence(:name) { |n| "Person #{n}" }
sequence(:email) { |n| "person_#{n}@example.com"}
password "foobar123"
password_confirmation "foobar123"
end
end
您可以將您的控制檯日誌......,看看它爲什麼失敗 –
@RahulSingh,如何記錄呢? –
@RahulSingh,沒有例外,測試在「sign_in」之後運行良好。 –