Často kladené otázky (FAQ)

Q. Co způsobuje, že je řádek částečně pokrytý (zobrazen se žlutým indikátorem)?

A. Řádek bude označen jako částečně pokrytý, pokud nemá provedeny všechny větve v kódu.

Následují dva příklady:

  1. Obsluhy výjimky:

  2. try {
    methodA() // methodA throws Exception
    } catch (Exception e) {..}

    Řádek, který volá methodA je částečně pokrytý, protože má dvě cesty: buď došlo k výjimce a byla zachycena, nebo není výjimka zachycena a program bude proveden obvykle. V případě, že nebyla výjimka vyvolána, bude označeno částečné pokrytí, protože zachycení provedeno nebylo.

  3. Sdílený kód konstruktoru:
  4. Ve výše uvedeném příkladu je řádek 4 označen jako částečně pokrytý. Uvědomte si, že kód inicializace instanční proměnné bude proveden a nezáleží na tom, který konstruktor bude použit k vytvoření instance objektu. Kompilátor dá kód inicializace oboum konstruktorům. Výše uvedený kód je proto přibližně rovný:

    Poněvadž používám pouze jeden konstruktor, druhá cesta provedení nebude provedena a bude označena jako částečně pokrytá. S

Q. Proč v sestavách pokrytí kódu není celkový počet řádků vykazovaný pro balík vždy rovný celkovému počtu, zobrazenému ke třídám v balíku?

A. Když vykazujeme celkový počet řádků v balíku, faktorujeme všechny řádky, sdílené mezi metodami, takže nebudou počítány dvakrát.

Q. Proč jsou definice třídy (například veřejná třída Foo {..}) označovány jako nepokryté (červené) nebo částečně pokryté (žluté)?

A. Pokud vaše třída nemá explicitní výchozí konstruktor, kompilátor pro vás jeden vygeneruje a poněvadž bude implicitní, může být přidružen k tomu řádku kódu. A za druhé, pokud máte jakýkoliv statický kód inicializace (například statické pole), kompilátor vygeneruje statické bloky inicializace, které taky mohou být k tomuto řádku přidružené.

Q. Proč se indikátory pokrytí v průzkumníku balíků objevují červeně i když pokrytá procentní část přesahuje přijatelnou úroveň pokrytí?

A. Když je nastaveno více než jedno kritérium přijatelnosti (například metoda a blok), zobrazí se indikátor červeně, pokud nebudou splněna obě. Kritéria přijatelnosti se nastavují vybráním Vlastnosti pokrytí kódu a poté umožněním indikátorů a procent. Zobrazené indikátory pokrytí se nastavují vybráním Předvoleb pokrytí kódu a pak umožněním indikátorů (metod, bloků, atd. . Barva se určí nastavením kritérií pomocí stránky Vlastnosti a ne stránky Předvoleb.

Q. Které řádky nejsou započítány do pokrytí kódu?

A. Následující nejsou započítány jako pokryté, nepokryté nebo částečně pokryté a nejsou použité ke kalkulaci procentuálního pokrytí:

Q. Co myslíte bloky v pokrytí bloků?

A. Spustitelná jednotka začíná na začátku každého bloku a v každém bajtovém kódu, jehož číslo zdrojového řádku je odlišné od předchozího bajtového kódu. Základní blok je oblast instrukcí bajtového kódu, kterou nelze rozvětvit nebo sloučit. Když bude spuštěna první instrukce v základním bloku, budou provedeny všechny instrukce, takže instrukce budou považovány za jedinou skupinu.

Základní bloky končí instrukcemi jako například, větvení, volání, hození a návrat.

Q. Proč, když ladím aplikace s umožněným pokrytím kódu, provede ladící program krok do třídy llc_probe.class spíše než očekávanou metodu?

A. To je způsobeno způsobem, jak jsou shromážděny data pokrytí kódu. Chcete-li s tím pracovat, musíte použít filtrování kroků: