【RSpec】RSpecのdebugを✅

面接対策動画に思っていた数倍苦戦している23期ユーザーのリテンション対策中です。

宣伝

ZEROKENをリリースいたしました!

サイトURL

https://www.zeroken.site/

Image from Gyazo

簡単にお酒の強さを測る事ができて、アルハラを予防する事ができるアプリになります!

自分に合ったお酒の飲み方の順番を見つけて自分のペースで飲み会を乗り切ってください!

Javascriptだったらconsole.logやdebugger、rubyであればbinding.pryを使って変数に何が入っているのかを確認していました。

RSpecruby同様binding.pryでエラー箇所を切り出せばいい。

さらに、エラー文の詳細を知る方法も突き止めた。ここに備忘録として残しておきたい。

今回はリクエストスペックを書いていた際に出たエラー対処についての備忘録を書かせていただきます。

RSpecでエラーが出た際の対処法

APIのテストを書く際に、下記のようなエラーが出た場合

Image from Gyazo

エラーが発生した箇所にbinding.pryを挟む

request.statusを確認する

下記コードをコンソールに打ち込む

$ pry>File.write("tmp/debug.html", response.body)

pryからexitする

pry > exit

consoleで下記Linuxコマンドを打ち込むと、

tmp配下のファイルが出力される

$ ls -la tmp/
total 248
drwxrwxrwx  11 subaru  staff     352 12 28 10:03 .
drwxrwxrwx  45 subaru  staff    1440 12 25 22:34 ..
-rwxr-xr-x   1 subaru  staff       0 11 15 08:31 .keep
drwxrwxrwx   5 subaru  staff     160 12 24 06:57 cache
-rw-r--r--   1 subaru  staff  119684 12 28 10:03 debug.html
-rwxrwxrwx   1 subaru  staff     128 10  5 18:38 development_secret.txt
drwxrwxrwx  13 subaru  staff     416 12 28 09:00 miniprofiler
drwxrwxrwx   4 subaru  staff     128 12 26 06:13 pids
-rwxrwxrwx   1 subaru  staff       0 10  5 20:27 restart.txt
drwxrwxrwx  16 subaru  staff     512 12 28 09:32 screenshots
drwxrwxrwx   2 subaru  staff      64 10  5 20:27 sockets

pryを挟んだ時にエラー文を記入しておいたdebug.htmlを書きコマンドを打ってブラウザで開く

$ open tmp/debug.html

すると下記のようにエラーの箇所を見つける事ができる。

Image from Gyazo

rspecのrequest specでうまくいかない時の原因調査のちょっとしたハック - Qiita