dotInsights | Február 2025

ByIvan BREZIANSKY

dotInsights | Február 2025

Vedeli ste, že?

Metóda GC.KeepAlive() v rámci .NET Framework sa nepoužíva na zabránenie zberu odpadu objektu pre celý rozsah metódy, ako by ste si mohli myslieť. Namiesto toho explicitne zabezpečuje, aby objekt zostal referencovaný v určitom bode kódu aj po jeho poslednom použití. Je obzvlášť užitočná pri práci s nespravovaným kódom alebo zdrojmi, kde by runtime mohol uvoľniť objekt príliš skoro, pretože preň neexistujú žiadne spravované referencie.

Zachytávajú vaše testy skutočne chyby?
Silná sada testov je dôležitou (a dovolím si tvrdiť, že aj nevyhnutnou) súčasťou vytvárania vysokokvalitného softvéru, ktorý je prispôsobiteľný zmenám. Keď už ste však tieto testy napísali, ako viete, že skutočne zachytávajú chyby? „Nikdy neverte testu, ktorý ste nevideli zlyhať“ je skvelé usmernenie pre písanie nových testov, ale čo potom?
Tu prichádza na rad testovanie mutácií. Jednoducho povedané, testovanie mutácií je spôsob testovania vašich testov. Podľa mojich skúseností to nie je veľmi rozšírená stratégia medzi vývojármi – vrátane mňa! Predtým, ako som sa o nej dozvedel, som sa už cítil istý v spôsobe, akým som písal testy, a nechcel som ešte investovať čas do učenia sa ďalšieho testovacieho rámca a filozofie. Keď som však pochopil, čo je to mutačné testovanie a aké jednoduché je osvojiť si ho, stal som sa jeho veľkým zástancom.

Testovanie vašich testov
Ak chcete vidieť, aké jednoduché je testovanie mutácií, skúste toto: vstúpte do jedného zo svojich projektov, zmeňte operátor + na operátor – a pozrite sa, či testy okolo tohto kódu stále prechádzajú. Ak áno, znamená to, že vaše testy pravdepodobne nie sú také úžasné, aké by mohli byť. Gratulujeme, práve ste vykonali testovanie mutácie!
Samozrejme, takto ručne meniť kód znova a znova by bolo veľmi bolestivé a časovo náročné, a práve na to slúžia knižnice na testovanie mutácií. Stryker, jedna z týchto knižníc, je populárnou možnosťou pre C# a Typescript. Stryker vám môže pomôcť tento proces škálovať tým, že ho automatizuje, objaví veľa mutácií naraz a potom zistí, či vaše testy zlyhali.

About the author

Ivan BREZIANSKY editor

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.