Rspec的水豚和,访问和获取方法之间的差异,关于该对象的current_path(Rspec an

2019-06-25 13:36发布

我可能混淆机架和水豚方法在这里

let!(:admin){FactoryGirl.create(:admin)}

# test passes
describe "visiting #edit page" do
  before { visit edit_user_path(admin) }
  specify { current_path.should eq(edit_user_path(admin)) }
end

# test fails
describe "getting #edit page" do
  before { get edit_user_path(admin) }
  specify { current_path.should eq(edit_user_path(admin)) }
end

第二次测试失败:

     Failure/Error: specify { current_path.should eq(edit_user_path(admin)) }

       expected: "/users/51/edit"
            got: "/users/51"

       (compared using ==)

一个before(:each)块,设置到的current_path /users/51 ,所以它看起来像它使用的时候仍然是这样get

我只是想在这里查看:

  • 访问 的current_path和来自水豚,而得到来自机架上?
  • 请问对象的current_path必然要求您使用的访问方法,以保持它的更新?

Answer 1:

你的问题是一个共同的问题,并在后由何塞·Valim描述 。

要短,在集成测试,只使用visit



文章来源: Rspec and capybara, difference between visit and get methods, with regards to the current_path object