【パーフェクト Ruby on Rails】を読む - その11

第3章押さえておきたいRailsの基本機能

テストの種類と実行方法

ソフトウェアの開発において、テストを行うことで品質を一定の水準に保つことは必要不可欠です。プログラムのテストを記述する事でトータルコストを少なくするため、Rails標準のテストフレームワークのminitestを学びます。


bin/rails testでテストを実行することができます。

testディレクトリ内のファイルやディレクトリについて

ディレクト 概要
application_system_test_case.rb システムの基底クラス
channels Action Cableに対するテストディレクト
controllers コントローラーに対する機能テストディレクト
fixtures テストデータ(fixture)を管理するディレクト
helpers ヘルパークラスに対するテストディレクト
integration 複数のコントローラー間でのテストに関するテストディレクト
jobs Active Jobに対するテストディレクト
mailers Action Mailer に対するテストディレクト
models モデルに対するテストディレクト
system システムテストディレクト
test_helper.rb ユニットテストで読み込むテスト用ヘルパークラス

Active Jobというワードが初めて聞いたので少し掘り下げる(ざっくりと) - Actiive Jobという非同期通信用のフレームワークがある - sidekiq(gem)です。 - Redisはオープンソースの永続化可能なインメモリデータベース(In-memory database)で、BSDライセンスで公開されています。 特徴はインメモリ型データ構造ストアであること、そしてデータの永続化ができることといえるでしょう。 メモリ上で動作するキーバリューストア型のデータベースです。

  • スタックとキュー(例)
    • スタック…最後に積み上げた本を最初に取り出す
    • キュー…最初に並んだ人を先にサービスする
  • 大量のジョブはRailsとSidekiqを使うとよし DelayedJob(gem)とResque(gem)というのもある

ひとこと

今日は現時点で使った事がなかったActive Jobについての議論が中心でした。 🤦‍♀️

参照

Sidekiqについて
非同期処理や定期実行を行う(Jobスケジューリング)