🍵

shoulda-matchers 採用 理由

2023/05/10に公開

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行でテストが書けるアレです

不要派の主張

  • 「こんなの間違えなくね?」

必要派の主張

自分は、必要派です。

理由は、

という感じで、
app/models側が 将来に渡ってシンプルに宣言的に書かれ続けるかどうかというのはわからないから、です。

これらは今GitHubで検索して出てきた、それぞれ某有名OSSのコードです。

あなたが今間違えなくても、app/modelsは将来的にめっちゃDRYな感じで書き直されたりする可能性があるので、spec/models側はそのときに備えておこうぜ という主張です。

以上です

Discussion