7. Cvičení

Na tomto cvičení se seznámíte s nástrojem na správu a řízení kompilace projektů Maven. Následně se naučíte pracovat s logováním pomocí java.util.logging a vytvářením unit testů pomocí frameworku JUnit.

Úkoly na cvičení

Maven

  1. Seznamte se s principem fungování systému Maven
  2. Pomocí knihoven na http://www.mvnrepository.com vytvořte jednoduché PDF, které bude obsahovat třeba jen jednoduchý text.

Můžete používat např. balíčky https://mvnrepository.com/artifact/com.itextpdf/kernel/7.2.1 a https://mvnrepository.com/artifact/com.itextpdf/layout/7.2.1 .

Logging

První úkol

Zkuste si vytvořit nový soubor JFrame Form. Po jeho spuštění se objeví prázdný JFrame. Aplikace nic nedělá a jen čeká na zavření okna. Opravdu se však nic neděje?

  • Nápověda č.1: Prozkoumejte root logger, třeba ho využívají i jiné části aplikace (GUI)
  • Nápověda č.2: K handleru, který používá root loger se dostanete např. pomocí Logger.getLogger(“”).getHandlers()[0]
  • Nápověda č.3: Nepoužívejte Level.ALL, stačí Level.FINE

Druhý úkol

Stáhněte a otevřete si ukázkový (dobře se na něm ukazuje, ne že by byl dokonalý) projekt BouncingBall. Když pominete plynulost animace, tak po chvíli hraní se může stát, že míček zapadne pod spodní okraj obrazovky. Aplikace však stále běží. Ale co se děje s míčkem? Postupuje dále do hlubin? Odráží se pořád od zdí? Co když se mu přechodem do jiné části obrátila i gravitace? A co na to Jan Tleskač?

Zkuste to odhalit pomocí logovaných zpráv. Rozlište různé typy zpráv pomocí levelu.

  • Pozice míčku
  • Odraz od zdi
  • Změna stavu aplikace (po kliknutí na tlačítka)
  • Tip: ve výpisech je lépe vidět, když má zem souřadnice y=0 (například obrácením gravitace nebo lze upravit samotný výpis)

Testování

  1. Vytvořte test pro všechny metody v dodané třídě Calculator. Nezapomeňte otestovat i dělení nulou, které musí správně skončit výjimkou a test musí projít.
Pokud se nepouští v JUnit5 metody označené @BeforeAll, @Before apod. Je třeba do pom.xml doplnit surefire-plugin:
 <build>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        <artifactId>junit-platform-surefire-provider</artifactId>
                        <version>1.1.0</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

Studijní materiály

courses/b0b36pjv/tutorials/07/start.txt · Last modified: 2023/04/12 13:39 by mudromar