+1 Cool! -Dan
On Thu, Feb 2, 2017 at 1:21 PM, Galen M O'Sullivan <gosulli...@pivotal.io> wrote: > Hi all, > > I would like to propose adding [junit-quickcheck](1) to Geode. It's named > after the [Haskell tool](2) and functions more or less as automated testing > for JUnit Theories (if anyone is familiar with those). > > Property-based testing means basically that you write a function that tests > some code and checks some conditions you expect to hold true for all > inputs, and then have a computer program test all sorts of weird inputs to > try prove you wrong. > > Because the test data is randomly generated, you get to test against more > inputs than you might even think of, and because the seed is saved, the > test is reproducible. If junit-quickcheck finds one failure, it will even > try to narrow down to a smallest example of a test failure. > > There are some limitations to this library -- for example, it doesn't tend > to generate strings more than a few hundred characters in length (though > this increases with sample size, so if you kick the sample size up, you can > get into the thousands fairly quickly). > > [ScalaCheck](3) is another option that does much the same and seems to have > more functionality (and in particular, it seems to be able to handle state > in tests), but it requires Scala to run and tests are also written in Scala > (though it can test Java code). I don't think there will be much support > for including Scala as a dependency for Geode. > > I've put up a Review board request and PR: > https://reviews.apache.org/r/56242/ > https://github.com/apache/geode/pull/383 > > > I'd like to hear the community's input. > > Thanks, > Galen O'Sullivan > > [1]: http://pholser.github.io/junit-quickcheck/site/0.7/ > [2]: http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html > [3]: http://www.scalacheck.org/index.html >