【Rails】RSpecによるテスト 1.テストの準備
RSpecの準備
RSpecを利用してRailsアプリのテストコードを書いていく準備をします。
今回の準備では、RSpecだけでなくFactoryBotやFakerといったgemも同時に用意していきます。
Gemfileの編集
group :development, :test do
#省略
gem 'rspec-rails'
gem 'factory_bot_rails'
gem 'rails-controller-testing'
gem 'faker'
end
- rspec-rails
今回の要。RailsにてRSpecを使ってテストするのに必要です。 - factory_bot_rails
テスト用にダミーのインスタンスを作成するのに役立ちます。 - rails-controller-testing
Railsのコントローラーをテストするのに必要です。 とはいえ少し古いものらしいです。新しいgemについては今後の記事で。 - faker
インスタンス作成の際、多様なダミーデータを投入できるようになります。
今後他のgemも必要になってくるかもしれません。
一旦はモデルとコントローラーの単体テストを想定して準備しています。
Gemfileの変更ができたら忘れずインストールします。
ターミナルからbundle installの実行
$ bundle install
RSpecの利用準備
$ rails g rspec:install
このコマンドで、下記のようにRSpecに関するファイルが生成されます。
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
生成された.rspecファイルに以下の文を追記します。
--format documentation
この追記で、テスト結果の表示のされ方が変わってきます。
追記前:
......
Finished in 2.4 seconds (files took 2.02 seconds to load)
6 examples, 0 failures
追記後:
Message
#create
can save
is valid with a message
is valid with an image
is valid with a message and an image
can not save
is invalid without a message and an image
is invalid without a group
is invalid without an user
Finished in 2.51 seconds (files took 3.65 seconds to load)
6 examples, 0 failures
このように、テスト結果の表示がかなり分かりやすくなります。
ターミナルからrspecを実行する際にオプションとして後ろに書き加えることもできますが、先にファイルに追記しておく方が楽かと思います。
factory_botの書き方を省略
RSpec.configure do |config|
#下の文を追加
config.include FactoryBot::Syntax::Methods
end
こうすることで、factory_botでインスタンスを生成する記述が少し簡略化されます。
次の記事ではモデル、コントローラーの単体テストについて書きたいと思います。
Author And Source
この問題について(【Rails】RSpecによるテスト 1.テストの準備), 我々は、より多くの情報をここで見つけました https://qiita.com/iiyama_makoto/items/b64079f9428ff64a8c9f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .