這是我們的集成測試用例,它符合spec/features /。 rspec的目的是首先登錄,然後打開用戶菜單頁面並測試使用菜單頁面上的鏈接。這是一個軌道3.2.12應用程序。這裏是RSpec的代碼:爲什麼會話在集成rspec中變爲空散列?
describe "CheckLinks" do
describe "GET /check_links" do
before(:each) do
...data...
visit '/'
save_and_open_page
fill_in "login", :with => @u.login
fill_in "password", :with => 'password'
click_button 'Login'
#save_and_open_page
end
it "works" do
visit user_menus_path
save_and_open_page
click_link('Project')
save_and_open_page
page.body.should have_content('Project#') #('Project Number')
end
end
末
的rpsec錯誤很簡單:
1) CheckLinks GET /check_links works
←[31mFailure/Error:←[0m ←[31mpage.body.should have_content('Project#') #('Project Number')←[0m
←[31mexpected to find text "Project#" in "Login Page"←[0m
←[36m # ./spec/features/check_links_spec.rb:116:in `block (3 levels) in <top (required)>'←[0m
我們發現的是,該會議是empty hash
click_link('project')
後,它會導致應用程序以redirect_to signin
頁。但是,在代碼執行中,Project
鏈接頁面確實將我們帶到項目的索引頁面。爲什麼在0123pec13之後的rspec會話變成empty hash
。我們的rspec代碼有問題嗎?感謝幫助。
你在rspec-rails和capybara上使用了哪個版本號? – fontno
rspec-rails:2.13.1,capybora:2.1.0 – user938363