Я прохожу через EdgeCase Ruby Koans. В about_dice_project.rb есть тест под названием «test_dice_values_should_change_between_rolls», который прост:
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
За исключением этого комментария, который там появляется:
# THINK ABOUT IT:
#
# If the rolls are random, then it is possible (although not
# likely) that two consecutive rolls are equal. What would be a
# better way to test this.
Что (очевидно) заставило меня задуматься: каков наилучший способ надежного тестирования чего-либо случайного подобного (конкретно и вообще)?