phpunit & phpspec
This type of testing calls methods of an object. Test doubles are used in place of all but the simplest object dependencies of the class under test.
This type of testing calls methods on an object. Unlike unit testing, the real object dependencies of the class under test are used.
phpunit & behat
This type of testing does not call the methods of an object directly. Instead, functional testing involves writing code which commands a http client or browser. The general cycle:
- Make a request.
- Click on a link or submit a form.
- Test the response.
- Reset fixtures and repeat.
Can also test an http API response.