在Rails应用程序中require 'capybara/rails'
进入spec / rails_helper.rb吗?还有require 'capybara/rspec'
怎么样?它是否符合spec / rspec_helper.rb?而不是spec / rails_helper.rb ......这两个文件的目的是什么?
答案 0 :(得分:4)
您可以将其添加到 rails_helper.rb 文件的顶部。以下是docs的设置说明。以下是我rails_helper
顶部的示例以及我放置require 'capybara/rspec'
的位置。
该文件的目的是加载您使用特定配置运行的每个测试。因此,您将行require 'rails_helper'
添加到每个测试文件的顶部,如下所示:
require 'rails_helper'
RSpec.describe MyModel, :type => :model do
# add your tests here
end
我发现这个resource对于其中两个文件的新用法很有帮助。文件rails_helper.rb
是RSpec 3x的新增内容,而在RSpec 2x中,默认帮助文件是spec_helper.rb
。
以下是我rails_helper.rb
个文件中前几行的示例。它应该告诉您放置代码require 'capybara/rspec'
ENV['RAILS_ENV'] = 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'shoulda/matchers'
require 'capybara/rspec'
作为每次测试运行的某些配置的示例,当我测试图像上传时,我想在每次测试后删除上传的文件,因此我将rails_helper.rb
配置为执行此操作。
config.after(:each) do
if Rails.env.test? || Rails.env.cucumber?
FileUtils.rm_rf(Dir["#{Rails.root}/spec/support/uploads"])
end
end
对于某些应用,我也想使用shoulda-matchers,要使用此功能,您必须确保为测试需要它,因此您将require 'shoulda/matchers
添加到rails_helper.rb
}。