尽管链接存在,RSpec应该has_link失败

rev*_*ver 15 rspec ruby-on-rails

我有一个RSpec测试,一直在失败.

subject { page }
visit user_path(user)
it { should have_link('Settings', href: edit_user_path(user)) }
Run Code Online (Sandbox Code Playgroud)

但是当我自己加载页面时,我可以看到链接运行良好.有任何想法吗 ?没有拼写错误.

可以在测试中看到RSpec加载的页面吗?

Tan*_*ili 17

visit user_path(user)没有在正确的上下文中执行.

尝试:

subject { page }
it do
  visit user_path(user) 
  should have_link('Settings', href: edit_user_path(user))
end
Run Code Online (Sandbox Code Playgroud)

要么:

subject { page }
before { visit user_path(user) }
it { should have_link('Settings', href: edit_user_path(user)) }
Run Code Online (Sandbox Code Playgroud)

如果您想查看html,可以使用save_and_open_page语句.