Ruby on rails 3.2 无法设置Rspec&;Rails 3.2中的水豚
我正在为rspec测试创建一个示例应用程序,并遵循以下步骤 在文件中:Ruby on rails 3.2 无法设置Rspec&;Rails 3.2中的水豚,ruby-on-rails-3.2,capybara,rspec-rails,Ruby On Rails 3.2,Capybara,Rspec Rails,我正在为rspec测试创建一个示例应用程序,并遵循以下步骤 在文件中: gem "rspec-rails", :group => [:test, :development] group :test do gem "factory_girl_rails" gem "capybara" gem "guard-rspec" end require 'spec_helper' describe "Users" do describe " List users" do it
gem "rspec-rails", :group => [:test, :development]
group :test do
gem "factory_girl_rails"
gem "capybara"
gem "guard-rspec"
end
require 'spec_helper'
describe "Users" do
describe " List users" do
it "List all users" do
get users_path
page.has_content?('List Users')
end
end
end
然后执行以下步骤:
gem "rspec-rails", :group => [:test, :development]
group :test do
gem "factory_girl_rails"
gem "capybara"
gem "guard-rspec"
end
require 'spec_helper'
describe "Users" do
describe " List users" do
it "List all users" do
get users_path
page.has_content?('List Users')
end
end
end
gem "rspec-rails", :group => [:test, :development]
group :test do
gem "factory_girl_rails"
gem "capybara"
gem "guard-rspec"
end
require 'spec_helper'
describe "Users" do
describe " List users" do
it "List all users" do
get users_path
page.has_content?('List Users')
end
end
end
但它不起作用,得到下面的错误
*我怀疑我没有正确配置capybara,请告诉我配置capybara的正确方法。在将capybara dsl包含到spec helper中后开始工作
config.include Capybara::DSL
由于您没有在Gemfile中指定Capybara的版本,我假设您的版本
=2.0
,这意味着使用页面的任何测试都应该放在spec/features目录下
有关更多信息,请查看以下链接:
如果您不想使用spec/features目录,您应该能够通过以下方式将测试标记为功能
:
require 'spec_helper'
describe "Users" do
describe " List users", type: :feature do
it "List all users" do
get users_path
page.has_content?('List Users')
end
end
end
值得为集成测试检查新的Capybara DSL(注意功能目录):
我写了一篇博客文章,详细介绍了如何使用RSpec 2.0 expect语法,以及适用于功能/场景的Capybara DSL
您也可以将其添加到spec\u helper.rb中:
require 'capybara/rspec'
如果这是你的解决方案,请接受这个答案。我的意见是,为了符合Capybara 2.0和RSpec对spec/目录结构的期望,最好修改配置;查看我答案中的两个链接了解详细信息。从spec/requests->spec/features中移动我的测试文件对我很有用。访问时不再出现错误。谢谢