Minitest【ruby】
Minitest
rubyのテスト(minitest)の学習です。
rubyのテストでは、他にRSpec, test-unitなどが有名なテストフレームワークです。
Minitest特徴
# rubyをインストールすると一緒に入る為、特別なセットアップが必要ない
# Railsのデフォルトのテスティングフレームワークなので、活かしやすい
今回は、有名なfizz buzzを例にします。
fizz_buzz.rb
def fizz_buzz(number)
if number % 3 == 0 && number % 5 == 0
# 3で割り切れ 且つ 5で割り切れるならfizz buzzを出力
p "fizz buzz"
elsif number % 3 == 0
# 3のみで割り切れる場合、fizzを出力
p "fizz"
elsif number % 5 == 0
# 5のみで割り切れる場合、buzzを出力
p "buzz"
else
# 上記の条件に該当しない場合、数字を出力
p number.to_s
end
end
fizz_buzz_test.rb
require 'minitest/autorun'
# minitest を呼び出す
require './fizz_buzz.rb'
# fizz_buzz.rbを呼び出す
class FizzBuzzTest < Minitest::Test
def test_fizz_buzz
assert_equal '1', fizz_buzz(1)
assert_equal 'buzz', fizz_buzz(5)
assert_equal 'fizz', fizz_buzz(3)
assert_equal 'fizz buzz', fizz_buzz(15)
end
end
assert_equal
assert_equal ’期待値’, ’検証式’
terminal
❯ ruby fizz_buzz_test.rb
Run options: --seed 27015
# Running:
"1"
"buzz"
"fizz"
"fizz buzz"
.
Finished in 0.000814s, 1228.5012 runs/s, 4914.0049 assertions/s.
1 runs, 4 assertions, 0 failures, 0 errors, 0 skips
# run : 実行したテストメソッドの件数
# assertions : 実行した検証メソッド件数
勉強になったこと
# RSpecは使用したことがあったが、Minitestは初めて使用した。