8.x deprecates a set of assertions with names that were shortened years ago, and 9 removes them — so the warnings are a deadline rather than noise. The…
8.0 declares void on the template methods, so every override without it is an incompatible signature — which is a fatal error rather than a deprecation warning. It…
PHPUnit 7 declares void on the template methods, so an override without it is an incompatible signature and a fatal error rather than a warning. It is a…
The @expectedException annotation asserts that the exception happened somewhere in the method, which passes when it is thrown by the setup rather than by the thing under test.…
7.0 landed in February and deprecated a set of assertions that appear in almost every suite, with removals following in 8 — so the warnings are a deadline…
Twelve near-identical test methods differing only in their input is twelve places to update when the method signature changes, and a suite nobody reads. Naming the rows with…
Resetting the database between tests by truncating every table costs a statement per table per test, which on forty tables and four hundred tests is sixteen thousand statements.…
Line coverage says a line executed during the suite. It does not say an assertion would have failed had that line been wrong, which is the question everyone…