WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

Rspecでruby-debugを利用する

      2015/05/24

スペックファイル中でのブレークポイント設置と出力

ブレークポイントとしたい場所でruby-debugのrequireと同時にdebuggerを仕込む。

    it "ユーザ名は20文字以内であること" do
      should accept_values_for(:nickname, "a" * 20)
      should_not accept_values_for(:nickname, "a" * 21)
      require "ruby-debug"
      debugger
    end

rspecを実行するとブレークポイントで止まる。

$ rspec -f d spec/models/user_spec.rb
(rdb:1) 

p を付けないと”Unknown command”という警告が出るので注意。

(rdb:1) @user.nickname
*** Unknown command: "@user.nickname".  Try "help".
(rdb:1) p @user.nickname
aaaaaaaaaaaaaaaaaaaa

デバッグの頻度が高いようならspec_helper.rbでrequireを行ったほうが効率がいいかも(未確認)

 - Ruby on Rails