RSpec with devise – 仅记录第一个测试
我正在尝试为用户必须使用设备登录的页面编写rspecfunction测试。
RSpec.feature "User sees items" do before(:context) do .. login_as(@user, :scope => :user) end after(:each) do Warden.test_reset! end it "sees 3 items" do create_items 1, 2 visit root_path expect(page).to have_css("#total", text: "3") end it "sees 7 items" do create_items 3, 4 visit root_path expect(page).to have_css("#total", text: "7") end end
在我的rails_helper
我include Warden::Test::Helpers
。
但只有我的第一次测试值3用户登录。第二次测试有设计错误You need to sign in or sign up before continuing.
在page.body
的测试中。
我怎么能保持记录? 或者我每次都要登录?
谢谢
使用before(:each)
,而不是before(:context)
:
before(:each) do # <-- !!!! # .. login_as(@user, :scope => :user) end after(:each) do Warden.test_reset! end
你的问题是before(:context)
只运行一次 – 即在第一次测试运行之前,而after(:each)
运行每次测试。
因此,在第一次测试运行后,您已退出并且未重新登录。