【发布时间】:2013-06-03 04:07:25
【问题描述】:
这是我们在 spec/features/ 下的集成测试用例。 rspec 的目的是先登录,然后打开用户菜单页面,并在使用菜单页面上测试链接。这是一个 Rails 3.2.12 应用程序。这是 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
end
rspec 错误很简单:
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 链接页面确实将我们带到了项目的索引页面。为什么会话在click_link 之后在rspec 中变为empty hash。我们的 rspec 代码有问题吗?
【问题讨论】:
-
你在 rspec-rails 和 capybara 上都使用什么版本号?
-
rspec-rails:2.13.1,水豚:2.1.0
标签: ruby-on-rails ruby-on-rails-3 rspec