Я должен записать некоторые тесты junit на коде Java, который звонит Math.random()
. Я знаю, что могу установить семя, если я инстанцировал своего собственного Случайного объекта привести к повторяемым результатам. Есть ли способ сделать это также для Math.random()
?
Метод Math.random ()
использует частное статическое поле:
private static Random randomNumberGenerator;
Если вы действительно действительно , необходимо установить его на new Random (CONSTANT_SEED)
(например, вам нужен тестовый код JUNit, который вы не можете контролировать), вы можете сделать это, используя отражение .
Как насчет того, чтобы самому создать экземпляр Random
и использовать его вместо этого? Math.random()
создает один экземпляр и использует его, поэтому я не думаю, что вы можете изменять его семя. Однако, если вы создадите Random
и будете использовать его напрямую, вы можете задать его семя при создании, и/или вызвать setSeed()
для него позже.