A fixture builder instead of a fixture file

A JSON fixture of a full order, loaded by 40 tests, where each test cared about two fields and was coupled to the other thirty.

$order = OrderBuilder::new()
    ->withLine(sku: 'ABC', quantity: 2, unitPence: 1200)
    ->withDiscount(percent: 10)
    ->build();

// the defaults are sensible and unstated; the test states
// only what it cares about, which is also what it reads as.

The fixture file made every test depend on every field, so adding a required field broke forty tests that had no interest in it. A builder puts the defaults in one place and lets each test declare its own relevance, which is the actual documentation value people claim for fixtures and rarely get. It is more code and it is code that changes once per schema change rather than forty times.