Подтвердить что ты не робот

Единичное тестирование стохастических процессов?

Существует ли разумный способ для unit test случайного процесса? Например, скажем, что вы кодировали симулятор для конкретной модели системы. Симулятор работает случайным образом на основе семян rngs, поэтому состояние системы не может быть предсказано, и если это может быть каждый тест, он должен довести систему до определенного состояния, прежде чем он попытается проверить любой метод класса. Есть ли лучший способ сделать это?

4b9b3361

Ответ 1

Два очевидных варианта - удалить случайность (то есть использовать фиксированное, известное семя для ваших модульных тестов и перейти оттуда) или проверить статистически (то есть запустить один и тот же тестовый пример в миллион раз и проверить что среднее и дисперсия (и т.д.) соответствуют ожиданиям). Последнее, вероятно, лучшее испытание вашей системы, но вам придется жить с некоторыми ложными тревогами.

Ответ 2

Здесь хорошая запись в блоге, которая охватывает эту тему. В основном вам нужно будет ввести контролируемую случайность в тестируемый объект.