はじめに
RSpecを書くときに、described_classを使うようにアドバイスをいただきました。
今回は、described_classの使い方と使う理由を説明していきます。
described_classの使い方
通常、このようにモデルの処理を書くと思います。
user.rb
RSpec.describe User do
subject {User.new}
end
described_classを使うと下記のように書けます。
user_spec.rb
RSpec.describe User do
subject {described_class.new}
end
Userがdescribed_classに変わりました。
このdescribed_classが何者かというと、
RSpec.describeの直後に書かれているモデルなんです。
RSpec.describe User do # Userがdescribed_class
end
described_classを使う理由
ではなぜ、described_classを使うのでしょうか。
described_classはテストコードを書くモデルを直接対象としているのがいいみたいです。
described_classと書いておけば、ミスも少なくなると思うのもいいところかも。