A fixture gives a test a known starting state. If several cases share the same mutable list, one case can make the next pass or fail for the wrong reason. Create fresh state per case and keep the assertion logic separate from setup. Parameterized cases then reuse one check against several explicit examples.
Mocks control a dependency while the code under test still runs. A side-effect sequence can simulate changing responses, and a scoped patch restores the original method when the context closes. You will inspect outcomes and meaningful boundary calls rather than assert every private implementation detail. These exercises make no real requests. Their hidden cases include repeated responses, empty fixtures, falsey supplied values, zero, and negative integers.