はじめに
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
と書いておけば、ミスも少なくなると思うのもいいところかも。