Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Property based testing in PHP?

In various more functional based languages there are tools (like Quickcheck) which allow for property based testing.

How would I go about property based testing in PHP?

I would like to be able to specify the in and output properties of a PHP method, and run coverage tests.

like image 580
Ward Bekker Avatar asked May 17 '11 08:05

Ward Bekker


2 Answers

There are currently two libraries that offer property based testing functionality in PHP:

  • Eris which is a PHP port based on Haskell's QuickCheck
  • PhpQuickCheck which is a PHP port based on clojure.test.check.

Eris has been build to work well with the PHPUnit ecosystem out-of-the-box.

PhpQuickCheck has been built to work standalone but can also be used in combination with PhpUnit and it's @dataprovider functionality. There is an example of this in the repository.

like image 135
Potherca Avatar answered Oct 24 '22 18:10

Potherca


You can have a go with the Faker library: https://github.com/fzaninotto/Faker. It won't do the testing for you, but it's great for generating the random data.

like image 34
Boy Who Roared Avatar answered Oct 24 '22 17:10

Boy Who Roared