Skip to content

Instantly share code, notes, and snippets.

@npryce
Last active August 14, 2022 20:34
Show Gist options
  • Save npryce/4147916 to your computer and use it in GitHub Desktop.
Save npryce/4147916 to your computer and use it in GitHub Desktop.
Property-Based Testing Tools

If you're coming to the Property-Based TDD As If You Meant It Workshop, you will need to bring a laptop with your favourite programming environment, a property-based testing library and, depending on the language, a test framework to run the property-based-tests.

Any other languages or suggestions? Comment below.

.NET (C#, F#, VB)

Python:

  • Factcheck -- requires a test framework (I like pytest), I wrote it (benefits - you can ask me about it, drawbacks - it's not very mature). Can be installed from PyPI with Pip or easy_install.
  • Hypothesis -- requires a test framework, provides decorators for easy integration
  • pytest-quickcheck - requires pytest, I found it hard to extend, and so wrote Factcheck

Ruby:

Scala:

Clojure:

Java:

Groovy:

  • Gruesome -- a quick and dirty implementation for Groovy

JavaScript:

@scarytom
Copy link

For a Clojure project with the correct clojurecheck leiningen dependency feel free to clone this: https://github.com/scarytom/proptdd

@pholser
Copy link

pholser commented May 28, 2013

@tcmak
Copy link

tcmak commented May 28, 2013

I tried qc.js before. The syntax is a little weird, but usable: https://bitbucket.org/darrint/qc.js/

(oh... it's on bitbucket!)

@kolman
Copy link

kolman commented Oct 23, 2013

What about Haskell? After all, QuickCheck was first written in it, right?

@newswim
Copy link

newswim commented Jun 27, 2017

@dubzzz
Copy link

dubzzz commented Feb 2, 2018

Typescript, JavaScript - https://github.com/dubzzz/fast-check

@feeeper
Copy link

feeeper commented Feb 27, 2018

FsCheck is on github now: https://github.com/fscheck/FsCheck

@jlink
Copy link

jlink commented Jan 25, 2019

@moodmosaic
Copy link

.NET (C#, F#, VB): There's also Hedgehog.

@pragdave
Copy link

For Elixir and Erlang, there's https://github.com/pragdave/quixir

@flyingmutant
Copy link

Go has https://github.com/flyingmutant/rapid (written by me), which tries to provide most of Hypothesis goodness in idiomatic Go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment