indilog

Ruby/Rails/React/Goなどに関して自分が勉強したことなどを投稿しています

2018-09-01から1ヶ月間の記事一覧

Layout/EmptyLineAfterGuardClause

Rubocopの0.59.0からLayout/EmptyLineAfterGuardClauseというcopがデフォルトになったみたい github.com 早期リターンの後に行を空けると、どこまでが早期リターンで、どこからが中身の処理なのかがわかりやすくなるから良いよね

STIを利用している場合のFactoryBotのfactory定義について

STIを活用しているモデルは、スーパークラスでfactoryを定義して、テストでオブジェクトの比較をすると、スーパークラスのままのものと、 サブクラスに変換されているものとの比較になってしまうことがあり、そのためテストが落ちることがある 以下のように…

RSpecのexpectとis_expectedの挙動の違いについて

subject(:actual_object) { ... } it { is_expected.to eq(expected_object) } と subject(:actual_object) { ... } it { expect(actual_object).to eq(expected_object) } では挙動が異なるという話 上の方を actual_object と expected_object を同じ属性…

Model周りのRSpecを書く時に意識していること

正しい方法かはわからないけど、最近Model周りのテストコードを書いていて自分でしっくりくるような書き方を考え出したのでつらつらと書いていきたい テストコードの基本形 あるModel内のインスタンスメソッドをテストする場合の基本形としては、このような…

Shrineでdelete_rawプラグイン使用時に元の画像を削除せずにseedデータを作成する

seed_fuを利用し、 Model.seed do |s| s.image = File.new(image_path) end としてseedデータ登録時にShrineを用いて画像を登録するようにしていたら、 seedデータ作成時にdelete_rawのプラグインを入れていたため、元のファイルが削除される形になってしま…