LoginSignup
0
0

More than 5 years have passed since last update.

rspec の導入メモ(途中)

Last updated at Posted at 2018-08-10

rspecとは何か?

https://magazine.rubyist.net/articles/0021/0021-Rspec.html
まずは、上のリンク先を読むことで理解の助けになると思われます。
また、以下のリンク先を読むと、
https://qiita.com/shinji1105/items/eb41972b97c91104d7ad
Rspecとは、Ruby on Railsのテストライブラリであり、BDD(テスト駆動開発)のtoolであるということがわかります。ただし、rspecの習得には時間がかかりそうです。

rspecの導入方法

自分の環境でrspecの導入についてまとめた。
以下のページを参照した。
https://qiita.com/luckypool/items/e3662170033347510c3c
https://qiita.com/shizuma/items/8221544601aa3d0770d2

備忘のため、具体的なメモ
vim Gemfile
で、開いたファイルに以下の一行を記述する。
gem 'rspec-rails'
bundle install

rspecの初期化

$ rspec --init

と入力すると、
-bash: spec: コマンドが見つかりません
rbenvを使っている場合、上記のようなエラーが発生する。
rbenvで環境構築した場合、rbenv rehashをする必要があるらしい。
参考)http://ylgbk.hatenablog.com/entry/2014/03/16/112310

$ rbenv rehash

$ rspec -v
RSpec 3.8
  - rspec-core 3.8.0
  - rspec-expectations 3.8.1
  - rspec-mocks 3.8.0
  - rspec-rails 3.8.0
  - rspec-support 3.8.0
$ rspec --init
  create   spec/spec_helper.rb
  create   .rspec

作業ディレクトリにspecというディレクトリが出来ているので、vim spec/spec_helper.rb などとして、ファイルを確認しておく。
spec/spec_helper.rbとは、テスト時に自動で読み込まれるファイルであり、各テストにおいて共通の処理があればこのファイルに記述するとのこと。
参考)https://www.qoosky.io/techs/f20cbb9b26

rails_helperとspec_helperの違い

参考)https://blog.willnet.in/entry/2014/06/10/142341
「spec/rails_helper.rb に Rails 特有の設定を書き、spec/spec_helper.rbには RSpec の全体的な設定を書く」とこのこと

ドットインストールに解説動画がある

https://dotinstall.com/lessons/basic_rspec
月額980円ですが、解説本が3000円くらいなことを考えると、ドットインストールの方が安上がりですね。4回目くらいまでは無料登録すればみれました。

rspecを解説しているサイトまとめ

下のページを一読して、自分の参考になりそうな部分を探す。
http://www.betterspecs.org/jp/
https://qiita.com/jnchito/items/42193d066bd61c740612
https://qiita.com/geshi/items/a930461f36bae880657d
http://kei-p3.hatenablog.com/entry/2016/05/25/235124
https://www.oiax.jp/rails/rspec_capybara_primer/model_test.html

ここまでリンク先を見ても、結局、自分のプログラムに適用できなさそう

もっとWebサイトのプログラムに近いサンプルが必要だと思います。
上のリンクのサンプルは、railsのサイトの一般的な内容と離れすぎている気がするのです。
うーん。で、見つけました。
https://railstutorial.jp/chapters/static-pages?version=4.0
このサイトをrspecで検索すると、自分の期待しているサンプルに近い形のサンプルが書いてあるので、これを参考にrspecのプログラムを書いて行ってみます。

capybaraは必要なのか

聞いたら、capybaraは必要ないとのこと。
以下、自分の試行錯誤の記録です。
rspecの中で、visitを使うためには、capybaraというgemをインストールしないと行けないみたいなので、以下のリンクの通りやったら、
https://qiita.com/msky026/items/494de080cc92a061fafe
visitはundefined methodのエラーを出さなくなったが、root_pathやらcontact_pathが自分のconfig/routes.rbで指定している書き方が違うのか、
undefined local variable or method `root_path'
というエラーが表示されてしまう。

なんか面倒。編集中。

githubに公開されているrspecのコードを検索して勉強する

この方法が勉強になると言われました。英語のページばかりです。

その他の単体テストのツール

Minitest
https://qiita.com/5t111111/items/5bb86896f85ac9cfc43f
Unit

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0