The legacy projects we work with are often flooded with mocks. I already wrote How to Remove Dead Mock Calls from PHPUnit Tests, which focuses on dealing with PHPUnit bloated syntax.

Today, we look at the next wave of improvements that make tests more valuable, more accessible to upgrade and read, and even avoid false types.

Mocking is helpful if you want to unit test a method that depends on complex external factors. Like database response, GPT API response, AWS file storage, etc. Mocking is also one of the main factors that make upgrading tests prolonged and expensive. During Rector upgrades, we often get to a project that has 300+ test classes that use mocks for project classes. We want to give mocked objects PHP 7.0 types and have Rector and PHPStan on our back. How do we avoid manual work and maintenance?

I'll share our approach to get the most out of mocks, drop dead code, and make tests more valuable.

continue reading on tomasvotruba.com

⚠️ This post links to an external website. ⚠️