はじめに
テストやら、細かいセキュリティ的な部分の実装はまだ課題として残したまま、とりあえず先日AWSでアプリケーションを公開しました。
というわけで無事公開したのだが、やはりテストを実装しないといけないので、テストについて調べてみました。
調べた結果RSpecをまず学習したほうが効率が良いという結論に至りました。
調べた内容は下記に列挙します。
- テストとは何か
- Railsで実装されるテスティングフレームワークとは何か
- ネット上で見つけたテスティングフレームワーク3種類の簡単な概要
- 多く使われているテスティングフレームワークとは何か
テストとは
アプリケーションを本番環境のサーバーで動作させるためには、そのアプリケーションのコードが仕様通りに欠陥(バグ)なく動作している必要があります。
テストとは、そのアプリケーションのコードが仕様通りに動作していることを確認し、バグを見つけ出ことです。
バグを見つけ出すことで、そのバグを修正(デバッグ)します。
テスティングフレームワーク
テストは、テスティングフレームワークというもので実行されます。
Railsのアプリケーションで使用するテスティングフレームワークは様々あります。
下記にいくつかのテスティングフレームワークを概要・特徴とともに列挙していきます。
- Minitest
- RSpec
- test-unit
Minitestの概要
MinitestとはRubyに標準で備わっているテスティングフレームワークです。
標準で備わっているため、gemを追加する必要もなく、テストを行うことができます。
Railsガイド(英語版)にドキュメントが掲載されています。
RSpecの概要
RSpecとは、Ruby向けBehaviour-Driven Developmentツールのテスティングフレームワークです。
rspec-railsにドキュメントが掲載されています。
test-unitの概要
test-unitとは、Ruby用のxUnit系の単体テストフレームワークです。
Ruby用単体テストフレームワークにドキュメントが掲載されています。
多く使われているテスティングフレームワークは何か
3つ見つけ出したが、エンジニアにとっては、ネット上にある知見の量や、デファクトスタンダードは何かを踏まえた上で何を使用するのがふさわしいのかを見極める必要があります。
と、いうことで、どれが一番使用されているか下記の条件で調べてみました。
- Qiitaは、「Minitest tag:rails」という形式で検索した記事の件数
- GitHubは、言語をRubyにし、検索したリポジトリの件数
- 執筆(2020年10月6日)時点の結果です。
テスティングフレームワーク | Qiita | GitHub |
---|---|---|
Minitest | 366 | 955 |
RSpec | 2151 | 11306 |
test-unit | 428 | 921 |
上記の表が絶対というわけではないのですが、RSpecが一番利用されているようです。
確かにRSpecという単語はよく目にしますので、納得はしました。
まだ良く理解できていない点
テスティングフレームワークのそれぞれの違いや、特徴など、BDD、xUnit系とは何かなど、まだ明確になっていませんが、今回はこの細かい部分の深堀りや辞めておきます。
テスティングフレームワークはRSpecが一番利用されているようなので、まずそちらを実際に使って、どのようなものか知見を蓄積してみようと思います。
全部実際に使って比較しても効率悪いし。
まとめ
ということで、まずはRSpecの学習を進めてみる、という結論に至ったお話でした。