Install RSpec by referring to RSpec Kotohajime ~ Initial Setting Manual ~ and the official document.
See this article for Rails installation. Building Rails environment with WSL of Windows 10
See also: rspec / rspec-rails Follow the official procedure to install. First, edit the Gemfile.
Gemfile
group :development, :test do
[abridgement]
gem 'rspec-rails', '~> 4.0.1'
end
After editing the Gemfile, execute the following command directly under the project directory.
command
#RSpec installation
$ bundle install
#Creating a standard configuration file
$ rails generate rspec:install
Running via Spring preloader in process 266
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
A directory for RSpec and a configuration file have been created. From now on, RSpec will be used, so delete the / test
directory for Minitest.
command
#Delete test directory
$ rm -rf test
Add the settings to the created .rspec
file.
.rspec
--require spec_helper
--color
--format documentation
Option name | Explanation |
---|---|
require | Specifying the file to call |
coler | Color the output |
format | Output format setting |
Reference: Command line --RSpec Core --RSpec --Relish
This setting eliminates the need to include require'spec_helper'
in the spec file. The output result is not just a dot, but a sentence format.
This completes the basic settings.
For the time being, just put on the list. Fake services will be added later.
Gem name | URL |
---|---|
factory bot | thoughtbot/factory_bot_rails |
rubocop-rspec | rubocop-hq/rubocop-rspec |
webmock | bblimke/webmock |
Run Rails 5.1 or later system tests with RSpec (translation) As mentioned in the referenced article, database_cleaner seems to be unnecessary after Rails 5.1. However, it seems that the rollback mechanism is implemented in System Spec instead of installing database_cleaner automatically. In the first place
spec/rails_helper.rb
RSpec.configure do |config|
config.use_transactional_fixtures = true
end
Reference: Transactions --RSpec Rails --RSpec --Relish With the above settings, database operations performed by RSpec will be processed in a transaction and removed by rollback. The reason why database_cleaner was introduced
[Translation + α] Use database_cleaner gem with Rails / RSpec / Capybara / Selenium This is because the above settings work effectively in the RSpec process, and did not work effectively if it was a user-operated emulation (Feature Spec) using Capybara / Selenum, etc. Therefore, I want to set the DB cleanup in detail at the time of testing! You don't need database_cleaner unless you're still using the Feedback Spec instead of the System Spec.
Recommended Posts