... вместо создания 100 новых случайных выборок для каждого свойства?
Мой набор тестов содержит описанный здесь метод TemplateHaskell [1] для тестирования всех функций с именем prop_ *. Запуск тестовой программы распечатывает
=== prop_foo from tests/lala.lhs:20 ===
+++ OK, passed 100 tests.
=== prop_bar from tests/lala.lhs:28 ===
+++ OK, passed 100 tests.
и это похоже на прохождение 100 случайных выборок для каждого из свойств.
Проблема: создание образцов довольно дорогое, проверка свойств - нет. Поэтому я хотел бы иметь средство для передачи каждой случайной выборки каждой из функций prop_ * вместо создания новых (#properties * 100) множества выборок.
Есть ли что-нибудь подобное встроено? На самом деле, думаю, мне понадобится замена сращивания
$(forAllProperties)
in
main :: IO ()
main
= do args <- parseArgs <$> getArgs
s <- $(forAllProperties) $ quickCheckWithResult args
s ? return () $ exitFailure
where
parseArgs as
= null as ? stdArgs $ stdArgs{ maxSuccess = read $ head as }
[1] Простое модульное тестирование haskell и Статус выхода QuickCheck при сбоях и интеграция с кликой
($x)
, то я этого не понимаю (вспомните: Template Haskell!). Если вы имели в виду($ x)
, тогда нет, у этого есть несколько недостатков: свойства не собираются автоматически, и если одно не удается, я не вижу, какой именно, QuickCheck сообщает толькоprop_AllOfThem
. - person stefan   schedule 07.07.2016