何らかの理由で、私のチームは受け入れテストが spec/requests ディレクトリに存在することを望んでいません。代わりに、spec ディレクトリ構造の外に存在する、acceptance と呼ばれる新しいディレクトリに配置することを望んでいます。それで、私の最初の質問は、RSpec、Capybara、および capybara-webkit を使用して、これは可能ですか?
これが私のacceptance_spec_helper.rbファイルです
require 'rubygems'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rspec'
require 'capybara/rails'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
# Capybara.javascript_driver = :webkit
RSpec.configure do |config|
config.include RSpec::Rails::RequestExampleGroup, :type => :request, :example_group => {
:file_path => config.escaped_path(%w[acceptance])
}
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
config.use_transactional_fixtures = true
# If true, the base class of anonymous controllers will be inferred
# automatically. This will be the default behavior in future versions of
# rspec-rails.
config.infer_base_class_for_anonymous_controllers = false
end
ただし、テストのためにアプリケーションが実際に実行されているようには見えません。
そしてお願いしますが、テストを spec/requests ディレクトリに戻せとだけ言うのはやめてください。それが唯一の選択肢である理由を裏付ける非常に強力な議論はありません。