这似乎是一个常见问题,但我查看了undefined method `visit' when using RSpec and Capybara in rails和Rails Rspec error - undefined method `visit',这两种解决方案都不适合我。
Capybara正在为我所拥有的Cucumber测试工作做得很好。
我的RSpec测试在/ spec / features中开始:
require 'rails_helper'
describe 'session_project', type: :controller do
before(:each) do
@user = User.create(
username: 'user',
password: 'test',
password_confirmation: 'test',
email: 'user@example.com',
role: 3
)
@project = Project.create(name: 'Project 1', active: true, user_id: @user.id)
end
context 'when I am on the view Project 1 page' do
before do
visit '/projects'
find(:xpath, %{//tr[td='Project 1']/td[@class='list_actions']/a[text()='View']}).click
end
# ... and so on.
第visit '/projects'
行给出了错误Undefined method 'visit
如果我在我的RSpec配置中包含config.include Capybara::DSL
,它会抱怨Capybara
是一个未定义的常量,那么RSpec可能会找错它的地方吗?
关于如何让RSpec与Capybara合作的任何想法?
答案 0 :(得分:0)
您的测试是一项功能测试(它描述了用户如何在浏览器中与应用互动),但却标有type: :controller
。将其更改为type: :feature
。
功能规格默认包括Capybara。
https://www.relishapp.com/rspec/rspec-rails/v/3-1/docs/feature-specs/feature-spec