Skip to content
SPECIFICTION
Get listed

fast-check vs JSVerify

fast-check

fast-check.dev

JSVerify

jsverify.github.io

Side by side

Figurefast-checkJSVerify
Price fromFreeFree
Free planYesYes
Free trial——
Open sourceYes—
WebYesYes
LinuxYes—
APIYes—
Self-hostedYesYes
Plans published11
Spec score · Property-Based Testing Tools8.9 (#1)8.1 (#5)
ConfigurationUsers can configure runs, seeds, generated value sizes, time limits, and result reporting globally or per assertion.The check API documents options for test count, maximum generated value size, quiet output, and random generator state.
Purposefast-check is a property-based testing library for JavaScript and TypeScript that generates inputs, runs assertions over many cases, and shrinks failures to smaller counterexamples.JSVerify is a property-based testing library for JavaScript, inspired by QuickCheck.

Plans

fast-check

  • fast-checkFree

fast-check pricing →

JSVerify

  • JSVerifyFree

JSVerify pricing →

In their own words

fast-check

fast-check is a property-based testing library for JavaScript and TypeScript. It generates inputs and checks expected behavior across many cases, then reduces a failure to a smaller counterexample to help investigate it. Tests combine arbitraries that create values, properties that describe behavior, runners that execute checks, and plugins that extend runners. It works with Jest, Mocha, Vitest, Ava, Bun, Deno, the Node.js test runner, and other test runners. Runs can be configured with seeds, generated-value sizes, time limits, and result reporting globally or per assertion. fast-check supports stateful testing and reproducible failures; its project also describes fuzzing and generative testing for issues such as race conditions and prototype poisoning. The project is open source under the MIT license, and the listed plan is free. Version 5.x requires Node.js 22.12.0 or later and ECMAScript 2025; TypeScript 5.8 or later is optional.

Visit fast-check.dev

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