Ruby学習 「プロを目指す人のためのRuby入門」 3章

はじめに

プロを目指す人のためのRuby入門Rubyを学習しています。
大事そうな部分や理解が難しかった部分、忘れそうなことについて学習メモを書きます。
今回は第3章「テストを自動化する」について書いていきます。

記事中のプログラムはirbで動作を確認しました。

Minitestの基本

  • Minitestはテストを自動化するためのフレームワーク
  • Rubyをインストールするときに、同時にインストールされる
  • 学習コストは低い

テストコードのひな形

  • 基本的には下記のようなコード
require 'minitest/autorun'

class SampleTest < Minitest::Test
  def test_sample
    assert_equal 100, 10 ** 2
  end
end
  • requireでMinitestを読み込む
  • テストクラスはMinitest::Testクラスを継承させる
  • Minitestはtestで始まるメソッドを自動的に探し、実行するためメソッド名はtestで始める
  • テストで使用するメソッドを書く
  • 作成したプログラムをテストする場合は該当のプログラムをrequireで読み込む必要あり

Minitestの検証メソッド

  • 「assert_equal a, b」 → aとbが等しければパス
  • 「assert a」 → aが真ならパス
  • 「refute」 → aが偽ならパス

テストが失敗した場合

  • テストメソッド実行中にテストが失敗した場合、そのメソッドの処理を中止する
  • テストメソッドが複数ある場合、失敗したテストメソッドの次のテストメソッドを実行する

実行中にエラーが発生した場合

  • テストメソッドでエラーが発生した場合もテストが失敗した時と同じ挙動

プログラム本体とテストコードを分離する

  • テストコードで対象のプログラムをテストする時は対象プログラムをrequireで読み込む必要がある

感想

テストコードは思ったよりシンプルに書けることが分かった。
また、テストコードを書けばテスト実施も楽になることを体感できたので、
これからは開発の際にできるだけテストコードを書く。

参考文献

この記事は以下の情報を参考にして執筆しました。