Skip to content
SPECIFICTION
Get listed

JSVerify vs QuickCheck

JSVerify

jsverify.github.io

QuickCheck

hackage.haskell.org

Side by side

FigureJSVerifyQuickCheck
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WebYes—
Linux—Yes
Self-hostedYes—
Plans published11
Spec score · Property-Based Testing Tools8.1 (#5)7.3 (#16)
LicenseThe GitHub repository identifies the project license as MIT.The package is licensed under BSD-3-Clause.
PurposeJSVerify is a property-based testing library for JavaScript, inspired by QuickCheck.QuickCheck is a Haskell library for random testing of program properties by checking specifications against randomly generated cases.

Plans

JSVerify

  • JSVerifyFree

JSVerify pricing →

QuickCheck

  • QuickCheckFree

QuickCheck pricing →

In their own words

JSVerify

JSVerify is a free, open-source property-based testing library for JavaScript, inspired by QuickCheck. It generates inputs and checks whether a stated property holds across them. When a check fails, it attempts to shrink the generated input into a smaller counterexample. Properties can return Promises, allowing asynchronous methods to be tested. JSVerify is framework agnostic; the project names Mocha, nodeunit, and Jasmine as examples. The README instructs users to install it with `npm install jsverify` and says TypeScript typings are provided, though TypeScript specs cannot use the type DSL. Documented defaults are 100 tests and a maximum generated-value size of 50. Options cover test count, maximum generated size, quiet output, and random generator state. Generated values are deterministic when using primitives from the random module, and the RNG state can be set. The project is maintained by phadej and licensed under MIT. Its official site points to the GitHub README for API and usage documentation. The README cautions that exposed utility functions may change incompatibly, including in patch releases.

Visit jsverify.github.io

QuickCheck

QuickCheck is a free Haskell library for testing program properties against randomly generated cases. Developers write specifications with QuickCheck combinators and can use combinators to define test-data generators and inspect generated-data distributions. It supports stateful testing, reproducible failures and shrinking failing cases. Monadic property testing is provided through the Test.QuickCheck.Monadic module. The package README describes adding QuickCheck to project dependencies for use in tests or a REPL. A companion package, quickcheck-instances, supplies instances for types in Haskell Platform packages, with additional dependencies. QuickCheck is licensed under BSD-3-Clause and lists dependencies including base, containers, random, splitmix, template-haskell and transformers. Hackage reports it tested with GHC versions from 8.10 up to but not including 9.15, as well as Hugs. A make-hugs script creates a Hugs-compatible version and may be useful for other non-GHC implementations. Hackage lists QuickCheck-2.18.0.0 as a downloadable Cabal source package. The listed package plan costs nothing.

Visit hackage.haskell.org