Существует ли нормальный путь к модульному тесту стохастический процесс? Например, скажите кодирование средства моделирования для определенной системной модели. Средство моделирования работает случайным образом на основе семян rngs, таким образом, состояние системы не может быть предсказано и если это может быть каждый тест, должен принести систему к определенному состоянию, прежде чем это попытается протестировать любой метод класса. Существует ли лучший способ сделать это?
Вот хорошее сообщение в блоге , посвященное этой теме. Обычно вам нужно ввести контролируемую случайность в тестируемый объект.
Возможно, вы могли бы использовать JUnit Теории
для решения этой проблемы.
Два очевидных варианта: устранить случайность (то есть использовать фиксированное, известное зерно для ваших модульных тестов и исходить из этого) или провести статистическое тестирование (то есть запустить один и тот же тестовый пример миллион раз и проверить, что среднее и дисперсия (и т.д.) соответствуют ожиданиям). Последний вариант, вероятно, лучше тестирует вашу систему, но вам придется смириться с некоторыми ложными срабатываниями.