PHPUnit 10 deprecates the docblock forms in favour of attributes, which is a mechanical change across every test file and a real improvement. Attributes are parsed by the…
A test that fails between 23:00 and midnight, once a year, and passes on every rerun. PSR-20 standardised this interface in 2022, which is worth adopting for the…
A global threshold of 80% says nothing about whether the code that matters is tested, and it is satisfied by testing the code that is easy. Different code…
Mocking a client library’s own interface couples every test to that library; faking the standard interface does not. Throwing on an unstubbed request is the design decision that…
A billing module everybody agrees should be separate, a team of four, and 88 classes that reference it. The boundary, drawn in code rather than in conversation.
A group of tests excluded from the pipeline “temporarily”, four of them since 2021. A quarantine without an expiry is a delete with extra steps. Adding a date…
Development mode mounting, unmounting and remounting every component is a diagnostic, and the double-fetch it produces is the diagnosis rather than the bug. An effect that cannot survive…