50
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【RSpec】described_classについて

Posted at

はじめに

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

Userdescribed_classに変わりました。

このdescribed_classが何者かというと、
RSpec.describeの直後に書かれているモデルなんです。

RSpec.describe User do # Userがdescribed_class
end

described_classを使う理由

ではなぜ、described_classを使うのでしょうか。

described_classはテストコードを書くモデルを直接対象としているのがいいみたいです。

described_classと書いておけば、ミスも少なくなると思うのもいいところかも。

50
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?