Ruby学習 「プロを目指す人のためのRuby入門」 3章
はじめに
プロを目指す人のためのRuby入門でRubyを学習しています。
大事そうな部分や理解が難しかった部分、忘れそうなことについて学習メモを書きます。
今回は第3章「テストを自動化する」について書いていきます。
記事中のプログラムはirbで動作を確認しました。
Minitestの基本
テストコードのひな形
- 基本的には下記のようなコード
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で読み込む必要がある
感想
テストコードは思ったよりシンプルに書けることが分かった。
また、テストコードを書けばテスト実施も楽になることを体感できたので、
これからは開発の際にできるだけテストコードを書く。
参考文献
この記事は以下の情報を参考にして執筆しました。