PHPUnit 5 has been released, and brings a number of improvements to the most widely used testing framework in PHP. All of the new features and improvements in PHPUnit 5 are supported by PhpStorm 9.5. Let’s take a look at what’s new!
The big news is that PHPUnit 5 will no longer support versions of PHP lower than 5.6; but it will support PHP 7. This is great news for those who can push forward their PHP versions, but not such good news for those who are locked onto a specific version of PHP. PhpStorm 9.5 already fully supports PHP 5.6, and most PHP 7 features.
Features marked as deprecated in the latter releases of PHPUnit 4 have now been fully removed in 5. These include some assertions (
NotTag), some configuration relating to Selenium integration, and the
--strict command line argument. Strict mode should now be invoked via a configuration file setting.
There have also been a number of improvements. The way
@depends works has been changed – expectations for mock objects that are passed by
@depends are evaluated in the test, which is useful in those places where you expect mocked methods to be called in every dependent test.
Tests marked as
@small (the default for tests that aren’t size marked) can also be marked as risky if they perform I/O. This should help avoid tests timing out when they perform I/O as the default timeout for small tests is 1 second. Test failures can now be sorted in reverse, and most usefully, a new convenience method
getMockWithoutInvokingTheOriginalConstructor was added to quickly create a test double without invoking the original constructor. This will be a useful addition since many developers will be creating mocks without the constructor in lots of tests.
--whitelist command line argument has been added which allows you to configure a whitelist of classes for code coverage analysis (using Xdebug).
Finally, a number of new assertions have been added:
assertInfinite– checks that given value is infinite (see is_infinite)
assertFinite– checks that the given value is a finite value (i.e. not infinite)
assertNan– checks that the given value is not a number (see is_nan)
Support for all the new and improved features of PHPUnit 5 is already included in PhpStorm 9.5, and the team at PHPUnit have added a new test result logger into PHPUnit 5 that allows integration with PhpStorm to be even more seamless!
Develop with pleasure!
– JetBrains PhpStorm Team