Hi - 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() ?
                +6 
                A: 
                
                
              
            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.
                  Jonathan M Davis
                   2010-05-14 18:48:49
                
              
                +2 
                A: 
                
                
              
            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.
                  rsp
                   2010-05-14 19:24:35