0
0

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.

【Rails初心者向け】RSpecの使い方まとめ(概要を掴む)

Posted at

#RSpecとは?
RSpecとRuby on RailsやRubyでアプリケーションの動作テストを行うgemです。

利用目的として、大規模サービスなど、チェックミスが起きやすいのでコード化してする。
また、アプリケーションの更新時に毎回一からテストを行う手間を省くこともできる。

#導入方法

group :development, :test do
  gem "rspec-rails"
end

※この時、必ずgroup :development, :testの中に記述する。
あとはbunle installで導入は完了です。

#設定をする

% rails g rspec:install

こちらをターミナルから実行して、必要なディレクトリを生成します。
ディレクトリにspecディレクトリができたことを確認してください。

--format documentation

.rspecにこちらを記述することでターミナル上からテストコードの結果をみることができるようになります。

#実際に動かしてみる
今回は簡単なサンプルを作って説明をしていきます。
まず rails g rspec:installで生成されたspecディレクトリの下にsampleディレクトリを作り、その中にsample_spec.rbファイルを作ります。そこに記述していきます。

sample_spec.rb
RSpec.describe '何のテストコード?' do
  contenxt '状況説明' do
    it "こうなるはずという結果" do
      処理内容をここに記述
    end
  end
end

####・RSpec.describe '何のテストコード?' do 
describeの後に、大きな括りでテスト内容を記述します。
例えば、新規登録のテストログイン機能のテストなどです。

####・context 'もう少し砕いて状況を説明して' do
2行目のdescribeでは1行目で宣言したテストコードをもう少し砕いて説明をします。
例えば、新規登録ができる時ログインができない時などです。

####・it "具体的にはどんな処理?" do
ここでは具体的な処理内容を記述します。
例えば、名前が入力されていたら新規登録できるパスワードが間違っていたらログインできないなどです。

#具体例を使って説明

sample_spec.rb
RSpec.describe 'テストの合計点' do
  contenxt '算数が100点、国語が50点の時の合計点' do
    it "算数と国語の点数が足されたら合計150点になる" do
      expect(100 + 50).to eq 150
    end
  end
end

ここではテストの合計点についてのテストコードを行っています。
contextでは各点数が何点かという状況説明をしています。
そしてitでは具体的にこうなるはずを説明して、処理内容をitの中で記述しています。

#まとめ
確認内容を言語化して、その処理を実行するという流れです。
次回は処理内容について学んだことを紹介していきたいと思います。

0
0
1

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?