🐯
ガンダムSEEDで例えるRSpecのテストコード
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