【RuboCop】RSpecのsubject使用時の規約違反とRuboCopの違反の種類について


はじめに

RSpecでsubjectを使用して、DRYにしようとする中で、

subject { get '/api', params: params, headers: headers; response }

このように書くと
RuboCopの警告を受けた。

Do not use semicolons to terminate expressions. (convention:Style/Semicolon)

終了の表現にセミコロンを使用しないでください。(規約:スタイル/セミコロン)

対処

じゃあ、使わない場合はどうするか、、

 subject do
   get '/api', params: params, headers: headers
   response
 end

こうすると、無事警告が消えました。
subject do ~~ endとして、2行に分けることでセミコロンでコードの終端を表現する必要がなくなった、ということですね。

RuboCopの警告の種類

ずっと、RuboCopの指摘の事を警告、とだけ呼んでしたが、これをきっかけに調べると、
今回の、conventionは規約違反。
段階があり以下の通りとなっています。

種類 意味
Clean 違反なし
Convention 慣習違反
Warning 警告
Error エラー
Fatal 致命的

下に行くほど重大、ということですね。
勉強になりました。

参考にさせて頂いた記事

終わりに。

最後まで読んで頂きありがとうございます
転職の為、未経験の状態からRailsを学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございました。