Ruby テストコードを作成し、test/unitでテストしたい
test/unitを用いてテストしようとしましたが、テストコードの書き方でつまづいてしまいました。
発生している問題・エラーメッセージ
ruby test_judge.rb g あなたはグー、私はパー、負けです。 Loaded suite test_judge Started E ========================================================================== 8: end 9: 10: def test_judge => 11: judge1 = Judge.new("g") 12: 13: judge1.judge 14: assert_true = (judge1 == 0) test_judge.rb:11:in `test_judge' test_judge.rb:11:in `new' test_judge.rb:11:in `initialize' Error: test_judge(JudgeTest): ArgumentError: wrong number of arguments (given 1, expected 0) ========================================================================== Finished in 0.002602 seconds. -------------------------------------------------------------------------- 1 tests, 0 assertions, 0 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications 0% passed -------------------------------------------------------------------------- 384.32 tests/s, 0.00 assertions/s
テストコードを書きたいのですが、詰まってしまいました。
該当のソースコード
Ruby
1class Judge 2 def self.judge(player, computer) 3 if player == computer then 4 return 2 5 elsif (player == "g" && computer == "c") || 6 (player == "c" && computer == "p") || 7 (player == "p" && computer == "g") 8 return 0 9 else 10 return 1 11 end 12 end 13end 14 15 16player = gets.chomp 17hands = {"g" => "グー", "c" => "チョキ", "p" => "パー"} 18computer = hands.keys.sample 19result = {0 => "勝ち", 1 => "負け", 2 => "引き分け"} 20 21puts "あなたは#{hands[player]}、私は#{hands[computer]}、#{result[Judge.judge(player,computer)]}です。"
require 'test/unit' class JudgeTest < Test::Unit::TestCase require "./judge" def cleanup p :cleanup end def test_judge judge1 = Judge.new("g") judge1.judge assert_true = (judge1 == 0) end end
試したこと
Test::Unitでテストを書く
を参考にしましたが、できませんでした。
補足情報(FW/ツールのバージョンなど)
ruby 2.7.2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。