I need to write some junit tests on Java code that calls Math.random()
. I know that I can set the seed if I was instantiating my own Random object to produce repeatable results. Is there a way to do this also for Math.random()
?
The method Math.random()
uses a private static field:
private static Random randomNumberGenerator;
If you really really need to set this to a new Random(CONSTANT_SEED)
(for instance you need to JUNit test code which you have no control over) you could do so by using reflection.
How about creating an instance of Random
yourself and using that instead? Math.random()
creates one and uses that, so I don't think that you can mess with its seed. If you create a Random
and use it directly, however, you can set the seed for that when you create it, and/or you can call setSeed()
on it later.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With