
Generative testing for JavaScript - luu
https://github.com/graue/gentest
======
Dru89
I'm a bit torn here. On the one hand, this sounds like it has a high
probability of doing exactly what unit tests shouldn't do: pass on one run and
fail on another.

On the other hand, the fact that it would fail at all would help you see that
you have a bug. Something you might not have caught before.

~~~
lbarrow
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.

~~~
llimllib
See also: quickcheck[1], hypothesis[2], ScalaCheck[3], etc

[1]:
[http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html](http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html)

[2]: [https://hypothesis.readthedocs.org](https://hypothesis.readthedocs.org)

[3]: [http://www.scalacheck.org/](http://www.scalacheck.org/)

~~~
markc
[https://github.com/clojure/test.check](https://github.com/clojure/test.check)

------
vmind
This doesn't seem to have been updated in a year. How does this compare to
other projects such as
[https://github.com/jsverify/jsverify](https://github.com/jsverify/jsverify)
which are currently more active?

