Temat artykułu: pojęcie asercji i słowo kluczowe "assert" w języku Java. Nie jest to tak regularnie stosowane jak tworzenie klas, jednak warto się co nieco o tym dowiedzieć, zwłaszcza jeżeli zapragniesz testować swoją aplikację pod kątem weryfikacji poprawności pewnych wrażliwych wyrażeń 😯. Zapraszam do środka po wiedzę 📖!
"ASSERT" W JĘZYKU JAVA SPRAWDZI, CZY TEST PRZESZEDŁ POMYŚLNIE...
Asercja to instrukcja badająca czy dane wyrażenie jest spełnione. Działa trochę jak instrukcja warunkowa, jednak w przeciwieństwie do niej, nie umieszczamy żadnych instrukcji, a w przypadku gdy warunek nie jest spełniony, dochodzi do przerwania działania programu, bo wyrzuca błąd "AssertionError". Błąd, nie wyjątek!
Asercja należy do narzędzi testowania oprogramowania i przydaje się do badania wszystkich niepożądanych przypadków, takich jak dzielenie przez zero, próba odwołania się do obiektu, a zmienna referencyjna przyjmuje wartość "null" i tak dalej.
TROCHĘ KODU NIE ZASZKODZI
Słowo kluczowe odpowiedzialne za asercje to "assert". "assert" w języku Java ma bardzo prostą składnię i zawiera cztery elementy 4️⃣:
assert x > 0 : "x <= 0";
- słowo kluczowe "assert",
- wyrażenie logiczne,
- dwukropek (opcjonalnie),
- treść komunikatu w przypadku zgłoszenia błędu "AssertionError" (łańcuch znaków, opcjonalnie).
Asercja działa bardzo prosto - w momencie uruchomienia programu i dojścia do tej instrukcji, sprawdzany jest podany warunek czy jest prawdziwy. Jeżeli jest, to program przebiega normalnie. Jak nie, program jest natychmiast przerywany.
ASERCJE TRZEBA POBUDZIĆ DO DZIAŁANIA 🙂
Instrukcja "assert" w języku Java domyślnie jest nieaktywna. Żeby jej "otworzyć oczy", musisz dopisać specjalną flagę do wirtualnej maszyny. Podejście różni się zależnie od tego, w jakim środowisku pracujesz.
WIERSZ POLECEŃ (CMD)
Po uprzednim skompilowaniu programu (opisywałem to tutaj), wpisz polecenie uruchamiające program dodając flagę "-enableassertions" pomiędzy słowem kluczowym "java", a nazwą klasy uruchomieniowej (ewentualnie z ciągiem folderów, jeżeli jest w pakiecie):
java -enableassertions Main
albo skrótowo:
java -ea Main
"INTELLIJIDEA"
W "IntelliJIDEA", musisz przejść do menu kryjącego się pod przyciskiem z ikoną trzech kropek ustawionych pionowo, tuż obok przycisku do uruchamiania programu i kliknąć "Edit...":
Przycisk wyświetlający okno do edycji ustawień uruchamiania programu w programie "IntelliJIDEA".
W nowo otwartym oknie zaznaczasz opcję "Modify options" i z sekcji "Java" wybierasz ostatnią opcję: "Add VM options":
Przycisk przeznaczony do dodawania opcji do wirtualnej maszyny Javy.
W polu tekstowym "VM options", wpisujesz "-enableassertions" lub "-ea". I od tej pory "assert" w języku Java będzie wpływało na przebieg programu 👍. Potem musisz tylko wyczyścić to samo pole chcąc wyłączyć działanie asercji.
Zaletą stosowania asercji jest możliwość ich dezaktywacji bez usuwania instrukcji. Po prostu usuwa się flagę "-ea" i już, program nie jest obciążony weryfikacją warunków.
Asercja to instrukcja przerywająca działanie aplikacji w momencie, gdy podany warunek nie zostaje spełniony. Jako, że to jest narzędzie diagnostyczne i nie jest domyślnie włączone, wymaga dodania flagi "-ea" do ustawień wirtualnej maszyny.
Wszystko na temat asercji. To jedynie dodatek do diagnostyki aplikacji, który może Ci się przydać, gdy kod się rozrośnie do poziomu wykraczającego poza możliwość ogarnięcia wszystkiego wzrokiem 👀. Na szczęście "assert" w języku Java może Ci pomóc w sprawdzeniu wszystkich punktów decyzyjnych 😊.