Version 6 moved everything under PHPUnitFramework and left aliases for the old names, which are deprecated. Every test file extending PHPUnit_Framework_TestCase needs a line changing. The rename is…
A provider that builds its cases from something created in setUp() fails with a null, because every provider in the class runs before any test does — including…
The first release where installing a package is one command. Auto-discovery removes two config edits per package, and hides the fact that they happened.
Test code is usually excluded from static analysis on the grounds that it is not production code, which is where a good proportion of the useful findings are…
Mocking a third-party class binds the test to that class’s current signature, so an upgrade changing a method leaves the test passing against a shape that no longer…
Mocking an upstream service makes the suite fast and guarantees nothing about the upstream still behaving that way. A contract test is a small suite that runs against…
Every plugin reading _price from post meta is now reading a private field. The mechanical half, the half that is not, and the compatibility layer for code you…