1
1

More than 3 years have passed since last update.

単体テスト実施前までの流れ

Posted at

はじめに

本記事では、単体テストを開始するまでの流れを記述します。
今日の学習で、テストコードをあまり理解できていないことがわかったため、
アウトプットいたします。
以下、過去にテストの際に登場するメソッドなどを投稿しておりますので、
ご参照ください。

テストコード実施までの流れ

Gemの追加

RSpecを使用するのには、まずGemをインストールする必要があります。
RSpecのGemです。
*私は、10分ほどspecのディレクトリを探しておりました。ここでGemということを再認識。

①Gemfileに記述
記述するものは「gem 'rspec-rails', '~> 4.0.0'」です。

group :development, :test do

省略

  gem 'rspec-rails', '~> 4.0.0'
end

②bundle install
省略

% cd (ディレクトリ)
% bundle install

RSpecの設定

Gemが追加できたため、
次は、アプリケーション(テストしたいディレクトリ)内でRSpecを使用します。

①アプリケーション内にRSpecをインストール

% rails g rspec:install

インストールが完了すると、
以下のようなディレクトリ・ファイルが生成されます。

[ターミナル内]
create  .rspec
create  spec
create  spec/spec_helper.rb
create  spec/rails_helper.rb

②.rspecに設定を追加する
生成された「.rspec」に以下のように記述します。
テストコードの結果をターミナル内で確認できるようにするための記述です。

--require spec_helper
--format documentation    ←これです

テストコードを記述するファイルを用意

以下のようなコマンドを実行することで、
テストコードのテンプレート(後述)が前もって記載されているファイルを生成できます。

今回は、「バリデーションができているか」という目的で、
モデルのファイルを生成したいと思います。

% rails g rspec:model user

create  spec/models/user_spec.rb

ファイルの生成ができました。
テストコードのテンプレートは以下のようになっています。

require 'rails_helper'

RSpec.describe User, type: :model do
  pending "add some examples to (or delete) #{__FILE__}"
end

この後からは、以下のようにテストを進めていきます。
明日以降本格的に、テストを行うことになるため、
その際に、テストの流れについて投稿いたします。

require 'rails_helper'

RSpec.describe User, type: :model do
  describe 'ユーザー新規登録' do
    it 'nameが空では登録できない' do
      # nameが空では登録できないテストコードを記述
    end
    it 'emailが空では登録できない' do
      # emailが空では登録できないテストコードを記述
    end
  end
end

たびたび失礼しますが、メソッドなどの言葉については、
過去の投稿をご参照ください。

終わりに

アプリケーションの実装訓練を毎日積んでおりますが、
今までテストコードを書いたことやテストを実施したことがなかったため、
『テストは特に行うものではないのか』と思っておりましたが、
全くの勘違いでした。

アプリケーションを実装するのは作り手側が責任を持って作成する必要があります。

そのためには、テストを行うことは当然であることを改めて認識しました。

明日は本格的にテストを学習する予定です。
引き続き頑張ります!!

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