山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

プロを目指す人のためのRuby入門 その3

第3章 テストを自動化する

Minitest

Minitest を用いてテストの自動化を行います。

FizzBuzz メソッドをテストしてみます。

fizz_buzz.rb
def fizz_buzz(n)
  if n % 15 == 0
    'Fizz Buzz'
  elsif n % 3 == 0
    'Fizz'
  elsif n % 5 == 0
    'Buzz'
  else
    n.to_s
  end
end
fizz_buzz_test.ruby
require 'minitest/autorun'
require './src/fizz_buzz'

class FizzBuzzTest < Minitest::Test
  def test_fizz_buzz
    assert_equal '1', fizz_buzz(1)
    assert_equal '2', fizz_buzz(2)
    assert_equal 'Fizz', fizz_buzz(3)
    assert_equal '4', fizz_buzz(4)
    assert_equal 'Buzz', fizz_buzz(5)
    assert_equal 'Fizz', fizz_buzz(6)
    assert_equal 'Fizz Buzz', fizz_buzz(15)
  end
end

Minitest では、 "test" で始まるメソッド全て実行していきます。テスト結果は、どこで間違えたのかや、エラーが発生したメソッドの個数などを返してくれます。

感想

競技プログラミングや progate や paiza などで ruby の使い方を勉強したりコードを書いたりしています。

目視でエラーを探さなくても済むようにテストを自動化するということを学びました。もっと Ruby を使うようになったらいずれ使うかもしれないですね。