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.

3
  • "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
    Commented May 17, 2011 at 8:38
  • 1
    Deceze, I've added some more description. More info about Haskell's Quickcheck here: haskell.org/haskellwiki/Introduction_to_QuickCheck Commented May 17, 2011 at 9:44
  • 2
    Seriously, how is this "Off Topic"?
    – Potherca
    Commented Feb 20, 2017 at 10:48

2 Answers 2

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.

1
  • @Kyll Thanks for the edit... looks like I forgot something there :-)
    – Potherca
    Commented Jan 31, 2017 at 19:29
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.

1
  • Just a note here that Faker is no longer maintained.
    – smottt
    Commented Oct 25, 2023 at 8:17

Not the answer you're looking for? Browse other questions tagged or ask your own question.