🍵
shoulda-matchers 採用 理由
shoulda-matchersとは
# user.rb
class User < ApplicationRecord
validates :name, presence: true
end
みたいなときに
# user_spec.rb
require 'rails_helper'
RSpec.describe User, type: :model do
it { is_expected.to validate_presence_of(:name) }
end
というふうに it { is_expected.to validate_presence_of(:name) }
みたいな感じで1行でテストが書けるアレです
不要派の主張
- 「こんなの間違えなくね?」
必要派の主張
自分は、必要派です。
理由は、
- こういうふうにwith_optionsとか使って凝った感じでDRYに書く人もいるし。。
- こういうふうにconcernの中のincluded doの中に書いて複数モデルに適用してDRYに書く人もいるし。。
という感じで、
app/models側が 将来に渡ってシンプルに宣言的に書かれ続けるかどうかというのはわからないから、です。
これらは今GitHubで検索して出てきた、それぞれ某有名OSSのコードです。
あなたが今間違えなくても、app/modelsは将来的にめっちゃDRYな感じで書き直されたりする可能性があるので、spec/models側はそのときに備えておこうぜ という主張です。
以上です
Discussion