15

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.

Woodrow Barlow
  • 8,477
  • 3
  • 48
  • 86
Ward Bekker
  • 6,316
  • 9
  • 38
  • 61
  • *"Quickcheck-style"* in which regards? There are of course unit testing frameworks for PHP, but which features of Quickcheck are you specifically interested in? – deceze May 17 '11 at 08:38
  • 1
    Deceze, I've added some more description. More info about Haskell's Quickcheck here: http://haskell.org/haskellwiki/Introduction_to_QuickCheck – Ward Bekker May 17 '11 at 09:44
  • 2
    Seriously, _how_ is this "Off Topic"? – Potherca Feb 20 '17 at 10:48

2 Answers2

17

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.

Potherca
  • 13,207
  • 5
  • 76
  • 94
2

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.