Мне нужно написать некоторые тесты junit на Java-код, который вызывает Math.random()
. Я знаю, что я могу установить семя, если я создавал свой собственный объект Random для получения повторяемых результатов. Есть ли способ сделать это также для Math.random()
?Установить семя на Math.random()
ответ
Метод Math.random()
использует закрытый статическое поле:
private static Random randomNumberGenerator;
Если вы действительно очень нужно установить это в new Random(CONSTANT_SEED)
(например, вам нужно JUnit код тест, который вы не имеете никакого контроля над) вас мог бы сделать это, используя отражение.
0 Как создать экземпляр Random
и использовать его вместо этого? Math.random()
создает одно и использует это, поэтому я не думаю, что вы можете испортить его семя. Однако, если вы создаете Random
и используете его напрямую, вы можете установить семя для него при его создании и/или вы можете позвонить по нему setSeed()
.
Установите его с экземпляром Random с потомством вашим или просто расширить методы возвращают значения, нужно
Field field = Math.class.getDeclaredField("randomNumberGenerator");
field.setAccessible(true);
field.set(null, new Random() {
@Override
public double nextDouble() {
return 1;
}
});
Каноническая версия случайного должна возвращать 4! –
- 1. Как восстановить семя Math.random()?
- 2. Случайное семя Math.random в Java
- 3. Math.random начиная семена
- 4. Можно ли установить семя идентификатора в TFSO
- 5. Как установить семя RNG в C++?
- 6. Изменить семя RAND() на PHP?
- 7. Math.random на не всех числах
- 8. Java Math.random
- 9. точность Math.random()
- 10. math.random - Javascript
- 11. Math.random повторяется
- 12. Reusing math.random
- 13. заставить системное семя для Javascript mat.random() method
- 14. Случайное число gen w/семя, действующее недетерминированное
- 15. Установить идентификационное семя в 0 с помощью NHibernate SchemaExport
- 16. оптимальная Java Случайное семя
- 17. Как создать случайное семя
- 18. C++ 11: Как установить семя с помощью <random>
- 19. Ссылка на случайное семя в Matlab
- 20. Случайное семя на разных заданиях PBS
- 21. Рубин на Rails Семя ошибка синтаксиса дб
- 22. Какой алгоритм использует Math.random?
- 23. JS: Math.random для массива
- 24. Java Math.random period
- 25. Генератор случайных чисел - почему семя каждый раз
- 26. Установите случайное семя временно, например «new Random()»
- 27. Math.random() в Java
- 28. Каким алгоритмом являются реализации Math.random на основе?
- 29. Math.random() javascript function * undefined * на Chrome
- 30. Lua math.random в координатах
могли бы вы подробнее остановиться на отражающей части Вашего ответа, пожалуйста? –