最近、仕事でSSO周りをRuby on Railsで実装しているのですが、
連携先によってロジックが変わります。
そのロジックを誰か(自分)が引き継ぐとなった場合、
何が正と判断するのに、テストコードが非常に参考になるという経験をしました。
テストコードはRSpecで記述しているのですが、
bundle exec rspec
を実行しても特定のファイルしかテストされない
という事象に行き当たりました。
今後も同じことに躓く可能性があると感じ、メモとして記事にしておこうと思います。
filter_run_when_matching
と focus: true
RSpecを導入した後、
spec/spec_helper.rbに以下のような設定があります。
# spec/spec_helper.rb RSpec.configure do |config| # 〜省略〜 config.filter_run_when_matching :focus # 〜省略〜 end
この設定により、
RSpec.describe SampleController, type: :request, focus: true do
のように設定したspecファイルに対してのみ、テストを実行するようになります。
focus: true
をmaster / developブランチへ誤ってコミットしてしまうと、
「RSpecが特定のファイルしか実行されない...」
というようなことが起きるので、コミット前に focus: true
の消し忘れがないか、
確認するようにしましょう。
※rubocopとかで設定できるといいけど、できるのかな... 🤔