Wivern Blog

Personal-Tech memorandum

Minitestの基本

「プロを目指す人のためのRuby入門」という本を今読んでいるのだが、 第3章にMinitestの基本がのっていたので忘れないようにメモ。

sample.rb
1
2
3
4
5
6
7
require 'minitest/autorun'

class SampleTest < Minitest::Test
  def test_sample
    assert_equal 'RUBY', 'ruby'.upcaxe
  end
end
  • 1行目 requre 'minitest/autorun'はライブラリを読み込んでブログラム内でMinitestを使えるようにするためのコード
  • 3行目 class SampleTest < Minitest::Testから7行目までがテストコードの本体

  • SampleTestはクラスの名前。命名規則は自由だが慣例としてJapaneseCalenderTestTestOrderItermなどTestで終わるかTestで始まる 名前をつけることが多い。

  • またテストコードが書かれたファイルクラスのファイル名はjapanese_calendar_test.rbtest_order_iterm.rbのようにクラス名と合わせる。
  • クラスの名前はキャメルケースでファイルの名前はスネークケースで書く。
  • < Minitest:Testの部分はSampleTestクラスがMinitet::Testクラスを継承することを表している。
  • 4行目のdef test_sampleから6行目までが実行対象となるテストメソッド。Minitestではtest_で始まるメソッドを探してそれを実行するので test_ではじめることが必須になる。(テストクラス内ではtest_で始まるメソッドを複数定義してもかまわない。Minitestはtest_で始まるメソッドを全て実行する)
  • 5行目のassert_equal 'RUBY', 'ruby'.upcaseが実行結果を確認するための検証メソッド(assert_equal 期待する結果、テスト対象となる値や式)
1
2
3
4
5
6
7
8
# aがbと等しければパスをする
assert_equal b, a

# aが死んであればパスをする
assert a

# aが義であればパスをする
refute a