Я тестирую случайный генератор, генерирующий экземпляры моего собственного типа. Для этого у меня есть собственный экземпляр Arbitrary
:Test.QuickCheck: ускорить тестирование нескольких свойств для одного и того же типа
complexGenerator :: (RandomGen g) => g -> (MyType, g)
instance Arbitrary MyType where
arbitrary = liftM (fst . complexGenerator . mkStdGen) arbitrary
Это хорошо работает с Test.QuickCheck
(на самом деле, Test.Framework
) для проверки, что генерируемые значения занимать определенные свойства. Однако есть немало свойств, которые я хочу проверить, и чем больше я добавляю, тем больше времени требуется, чтобы проверить их все.
Есть ли способ использовать те же сгенерированные значения для тестирования каждого свойства, а не генерировать их заново каждый раз? Я, очевидно, все еще хочу видеть, при сбоях, , который не имел свойства, поэтому создание одного гигантского объекта с and
не является оптимальным.