私はRuby Koans(Rubyのチュートリアルプロジェクト)を使って作業しています。 About_Dice_Projectでは、DiceSetという名前のクラスを作成することが望まれます。私は成功しますが、面白い質問があります。Ruby Koans:同じ値を持つ2つの異なるダイスをテストします。
class DiceSet
# Attribute reader
attr_reader :values
# Initializer
def initialize
@values = []
end
# Roll method
def roll(dice_amount)
@values = Array.new(dice_amount) { rand(1..6) }
end
end
そして、このテストは興味深いです::ここで
はコードだ
def test_dice_values_should_change_between_rolls
dice = DiceSet.new
dice.roll(5)
first_time = dice.values
dice.roll(5)
second_time = dice.values
assert_not_equal first_time, second_time,
"Two rolls should not be equal"
end
それについて考える:
ロールがランダムである場合、それは可能である(が、ではない)、2つの連続するロールが等しいこと。これをテストするには、 の方がいいでしょうか?
私の考えは assert_not_equal first_time.object_id, second_time.object_id
を使用して、first_time
とsecond_time
のOBJECT_IDをテストすることです。それは動作しますが、私は正しいですか? Rubyとプログラミングの初心者として、実際にobject_id
とは何ですか? ところで、マークダウンのテキストを正当化することは可能ですか?
ご協力いただければ幸いです!
:どの2つの連続したロールが等しくないことを確実にする
それについて考え
一つの方法は、
while
ループを使用することです。それはRubyについてですか、それともMarkdownについてですか? –ルビーについて、混乱させて申し訳ありません^^ –