Pokud se budeme držet následujících dobrých rad, je velmi pravděpodobné, že kód který vyprodukujeme bude kvalitní a bude pokryt kvalitními interakčními jednotkovými testy.
Mockování objektů je technika vytváření napodobenin objektů pro zaměnitelné objekty. Tuto techniku můžeme snadno použít, vyvíjíme-li náš kód metodou programování do rozhraní. Složitější je mockování objektů z externích knihoven, nicméně zde si můžeme pomoci obalovači (wrappery), které zapouzdřují funkcionalitu těchto knihoven a které již není problematické testovat.
Tyto metody vystavují implementaci jednotlivých tříd, zvyšují tak provázanost jednotlivých částí kódu a snižují jeho zapouzdřenost.
Testy budeme číst ještě dlouho poté, co budou naprogramovány. Při psaní testů proto explicitně definujme, zda-li akce má být vyvolána, může být vyvolána nebo nesmí být vyvolána. V budoucnu bude potom jasné, jaké vlastnosti daná akce musí mít.
Při psaní jednotkových testů potřebujeme najít správnou hranici mezi pokrytím dané specifikace přesnými testy nebo psaním takových testů, které umožňují jednoduchý vývoj doménového kódu. Pišme testy, které neselžou v případě, že změníme nerelevantní část doménového kódu vzhledem k našemu testu. Nepišme křehké testy, protože tyto testy potom snižují produktivitu vývoje a zvyšují jeho náklady.
Je zbytečné napodobovat objekty, které nekomunikují s okolím. Tyto objekty je vhodné testovat pomocí stavového jednotkového testování. Jedná se zejména o objekty nesoucí hodnoty, provádějící nezávislé výpočty a reprezentující atomické hodnoty.
Vyvarujme se používání volání metod jiného objektu skrze svého souseda, jelikož nastavit test, aby reflektoval tuto konstrukci, je velmi složité.
V jednom jednotkovém testu používejme maximálně pět mock objektů. Test obsahující více mock objektů je těžké nastavit a složité číst. Pokud používáme v testu více těchto objektů, může to ukazovat na to, že testovaný kód je příliš složitý a že je připraven na refaktorizaci.
Je nemožné testovat interakce s objekty, které jsou vytvářeny uvnitř testovaného kódu, a to včetně interakcí s jejich kontruktorem. Řešením tohoto problému může být použítí implementace návrhového vzoru továrna (Factory) pro generování těchto objektů. Tento kód se již poté dá testovat.