我正在尝试创建一个简单的rspec来检查Bootstrap导航栏及其中的相应链接。我已在capybara/rspec
中包含spec_helper.rb
并在spec/features
目录中包含rspec,因此我认为我的设置正确,但运行规范会产生错误,指出内部方法是未定义。
require 'spec_helper'
feature "HomePage" do
before { visit root_path }
subject { page }
describe "the navigation bar" do
it { should have_selector('.navbar') }
within ".navbar" do
it { should have_link('Game Contest Server', href: root_path) }
it { should have_link('Users', href: users_path) }
it { should have_link('Sign Up', href: signup_path) }
end
end
end
关于如何解决此问题的任何想法?
答案 0 :(得分:4)
在RSpec中,capybara方法仅在it
块内可用。您只需要将代码重构为:
describe "the navigation bar" do
it { should have_selector('.navbar') }
it "should have links" do
within ".navbar" do
should have_link('Game Contest Server', href: root_path)
should have_link('Users', href: users_path)
should have_link('Sign Up', href: signup_path)
end
end
end