Проверьте, что метод не выбирает определенный элемент случайным образом - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть следующий метод

def select_random(mylist, excluding_this_one)
   return mylist.sample
end

В настоящее время он сломан. Существует вероятность того, что при вводе [5,8,6], 8 он выберет вариант 2. Я бы хотел, чтобы он выбирал только случайный элемент, который не равен 8 (то есть 6 или 5).

Я в настоящее время пытаюсь написать тест, чтобы убедиться, что это произойдет. Но, учитывая, что вывод select_random не является детерминированным c, у меня нет возможности проверить, что он никогда не вернется 8.

Мой вопрос заключается в том, что я могу сделать, чтобы мой метод select_random никогда не вернется 8?

Единственный способ, которым я думал о том, где я могу проверить это с достаточной точностью, - это просто повторить вызов метода много раз в тесте и убедиться, что он никогда не вернет результат, который я не получаю. не хочу Однако это выглядит очень «грязно» и технически не гарантирует, что метод работает.

...