🐯

ガンダムSEEDで例えるRSpecのテストコード

2024/06/14に公開

Railsの基本的なテストコードを学習してみたのでアウトプットします。まだ効率的な記述ができないので、随時アップデートする予定です。**ガンダムSEEDは完全に私の趣味です。**とっつきにくくてすみません。笑

そもそも、なぜ手動ではなくテストコードを書くのか?

結論から言うと、手動でテストするデメリットが大きいからです。 手動でのテストプロセスは時間がかかり、人的ミスに繋がることがあります。これに対し、テストコードを書くことで多くの利点があります。
(場合によっては手動のほうが早くて手間がかからないケースもあるようですが、私はまだそこの経験がないため、今回はテストコードのメリットに焦点を当てます。)

手動でテストするデメリット

1、人為的なミスが発生して仕様を見落とす。
2、一部仕様変更するたびに全てのテストを再実行する必要がある
(時間の無駄や効率の低下につながります。)
3、テストの記録が残らない。

テストコードのメリット

バグの早期発見: 自動テストにより、開発初期に問題を発見できます。
効率の向上: 一度書いたテストコードは繰り返し使用でき、時間を節約できます。
ドキュメントとしての機能: テストコードは、アプリケーション全体の仕様を明確にする役割も担います。
記録が残る: 手動と違い、テストコードを実行するといつどんなテストを行い、どんな結果が返ってきたのか記録が残ります。

ガンダムSEEDで例えるテストコードの記述

テストコードの基本構造

Railsでテストコードを記述する際によく使われるRSpecの基本的なメソッドを紹介します。
以下のメソッドを使用して、フリーダムガンダムの特性をテストします。

サンプルコード

sample_spec.rb
RSpec.describe '簡単なテストコード' do
  describe 'フリーダムガンダムのスペック' do
    
    it '全長' do #全長が18mで一致しているか
      expect(18).to eq(18) 
    end

    it '武装' do # 武装にバラエーナビーム砲が含まれているか
      expect(["ビームライフル", "バラエーナビーム砲","クスフィアスレール砲","ラケルタビームサーベル"]).to include("バラエーナビーム砲")
    end
  end
 end

RSpec実行コマンド

bundle exec rspec spec/models/sample_spec.rb

bundle execで依存関係を整理
rspec 実行ファイルでrspecのテストを実行します。

結果


無事に完了しました!

Discussion