A QuickCheck-inspired property-based testing tool for Erlang, focusing on pure functions and stateful code.
PropEr is a property-based testing tool for Erlang, inspired by QuickCheck. It automates testing by generating random inputs based on specified properties and verifying that programs behave correctly. It focuses on testing pure functions and includes modules for stateful code.
Erlang developers and software testers looking to implement automated, property-based testing for their applications, especially those dealing with complex input domains or stateful systems.
Developers choose PropEr for its deep integration with Erlang's type system, ability to automatically generate tests from specs, and its compatibility with QuickCheck, making it a powerful open-source alternative for rigorous testing.
PropEr: a QuickCheck-inspired property-based testing tool for Erlang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Erlang's native type language for input specifications and can automatically construct generators from ADT API functions, reducing boilerplate and leveraging existing type definitions.
Tests functions based solely on information in their specs, automating test creation and ensuring broader coverage without manual test case writing.
Includes dedicated library modules for testing stateful code alongside pure functions, extending its utility to complex, stateful Erlang systems as mentioned in the README.
Maintains similar notation and output format to QuviQ's QuickCheck, facilitating code reuse and easing migration for users familiar with that tool.
Requires manual compilation, path configuration via ERL_LIBS or .erlang files, and header includes, which can be more involved than plug-and-play testing tools.
Has known differences in macros and functions, such as ?SUCHTHATMAYBE behavior and pick/1 format, which can hinder direct code porting from QuickCheck and require adjustments.
Faces common problems like macro clashes with ?LET and output visibility when used with EUnit, necessitating workarounds such as specific option passing.
proper is an open-source alternative to the following products: