所以我正在尝试运行我的测试,现在假设要通过,但我一直收到错误
1) Sign in flow successful redirects to the topics index
Failure/Error: visit('/topics')
NoMethodError:
undefined method `visit' for #
<RSpec::ExampleGroups::SignInFlow::Successful:0x007fd91e36f8e0>
# ./spec/models/sign_in_spec.rb:10:in `block (3 levels) in <top (required)>'
这是我的sign_in_spec.rb文件
require 'rails_helper'
describe "Sign in flow" do
include TestFactories
describe "successful" do
it "redirects to the topics index" do
user = authenticated_user
visit root_path
end
end
end
我的rails_helper.rb
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
require 'capybara/rspec'
我不确定,但我认为我不需要为root_path创建路由吗?
答案 0 :(得分:2)
问题不是/
- 它是visit
,因为您的错误显示了。该规范文件中不存在该方法。这是一种Capybara方法,而Capybara则用于特征规格。
看起来问题是您正在尝试在模型规范文件中运行“功能”规范。 Capybara会创建您正在使用的特定于域的语言,并将其设置为仅在某些规范文件夹中可用。如果您将规范移动到spec/features
文件夹,则可能会修复它。