プロを目指す人のための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" で始まるメソッド全て実行していきます。テスト結果は、どこで間違えたのかや、エラーが発生したメソッドの個数などを返してくれます。
本
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
感想
競技プログラミングや progate や paiza などで ruby の使い方を勉強したりコードを書いたりしています。
目視でエラーを探さなくても済むようにテストを自動化するということを学びました。もっと Ruby を使うようになったらいずれ使うかもしれないですね。