I have had a look at whether we could use the QuickTheories in our
randomized testing and come to the following conclusions:

Pros:
1) It has a very rich set of random generators out of the box.
2) It has a very powerful mechanism for generating customised randomized
datasets.
3) It is very pluggable within the constraints of its framework.

Cons:
1) The framework has to be used in a very specific way in order for it to
work. It does not allow for subsets of the framework to be used in
isolation.
2) The code hasn't been touched for 3 years. This is an observation as much
as anything but it does not appear to be being maintained at the moment.

The carrotsearch generators use a seeded Random to generate their values so
are also repeatable. It also provides a very rich set of random generators
that can be used in isolation of any other part of the framework. This
project is also being actively maintained.

As such I would prefer to keep using the carrotsearch generators. I have
made a change to the SAI testing that removes our usage of RandomizedTest
from the library and have stuck to just using the lower level random
generators. We already had a Randomization class in our test framework that
provided a lot of the RandomizedTest functionality (primarily the reporting
on failed tests of the random seed and the reuse of seeds) so using both
made no sense.

Reply via email to