|
|
|
|
|
by lbarrow
3957 days ago
|
|
These aren't unit tests, they're generative tests. They're used for different things. Unit tests make assertions about how a program responds to a specific input. Generative tests make assertions about invariants in a program over a wide range of inputs. The workflow for using them is very different. A unit test suite contains a finite number of assertions and, assuming no bugs, should run in a relatively small (or at least bounded) amount of time. A generative test, however, usually can run forever _by design_. A typical workflow is to start a run overnight and see if it caught anything in the morning. If the generative suite finds any bugs, you turn the specific cases that caused the failures into unit tests and commit them. |
|
[1]: http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html
[2]: https://hypothesis.readthedocs.org
[3]: http://www.scalacheck.org/