Všechny změny, které provádíte, byste měli otestovat. Této chyby se často dopouští i mazáci, kteří si jsou celkem jisti tím, co kód dělá, jenom z jeho čtení. I jim se ale může stát, že něco přehlídnou.
Když píšete podmínku, tak ověřte situaci, kdy je i kdy není splněna. Když pracujete s polem, tak ověřte, co udělá prázdné pole. Pokud máte kód pokrytý testy, tak je to jedině dobře, jen ty testy samozřejmě nesmíte zapomenout spustit. Většinu změn byste ale i tak měli otestovat v kontextu celé aplikace. Třeba test netestuje přesně ty stejné podmínky, které nastávají v aplikaci.
Pokud je těžké změnu otestovat v kontextu (třeba proto, že opravujete chybu projevující se za podmínek, které nedokážete navodit), tak byste ji měli otestovat aspoň v izolaci. Třeba aspoň tak, že kousek měněného kódu vezmete a spustíte ho z příkazového řádku.
Důležité je si postup co nejvíc zautomatizovat. Syntaktickou analýzu (php -l
) spouštějte v pre-commit hooku. Pokud máte více kontrol, které jsou rychlé a nemají false positives, tak je tam dejte všechny. Může to být nástroj na kontrolu neinicializovaných proměnných nebo třeba konzervativně nastavený JSHint. V editoru si nastavte klávesovou zkratku, která spustí testy.
Mně osobně a spoustě dalších vývojářů také pomáhá napsání provedených testů do commit message. Často stačí napsat jen “Ran unit tests” nebo “New unit tests”, ale někdy je potřeba se zamyslet trochu víc. Několikrát se mi stalo, že jsem kód chtěl už už odevzdat, ale při psaní testovací zprávy jsem se zamyslel nejen nad tím, jak jsem kód už otestoval, ale také jaký by byl na jeho otestování nejlepší způsob. Na základě toho kód pak třeba ještě změním.
Změny je potřeba otestovat také po mergi, ať už v něm jsou konflikty nebo ne. Možná někdo řešil stejný problém jako vy a než stihnete svou změnu pushnout, tak přidal stejně pojmenovanou metodu na jiné místo.
Zkrátka ověřujte všechny změny, i ty, které vypadají naprosto neškodně.
Diskuse je zrušena z důvodu spamu.