Pytania i odpowiedzi na wywiad z Junit [dla początkujących i doświadczonych]
Opublikowany: 2020-09-22JUnit to doskonałe rozwiązanie dla programistów pracujących z językiem programowania Java. Może być używany do implementacji testów jednostkowych, a także testowania interfejsu użytkownika. Jest to jedna z najbardziej poszukiwanych kompetencji dla organizacji, które chcą poprawić jakość kodu i szybkość programowania. W tym artykule omówimy standardowe pytania do rozmowy kwalifikacyjnej JUnit, które pomogą Ci przygotować się i znaleźć się na tej krótkiej liście!
15 najlepszych pytań i odpowiedzi na wywiad JUnit
1. Co to jest JUnit?
JUnit to framework służący do przeprowadzania testów jednostkowych kodu Java. Jest uważany za podstawę testowania po stronie programisty na silniku JVM. Dlatego JUnit jest integralną częścią dziedziny programowania i rozwoju opartego na testach.
2. Co rozumiesz przez testowanie i testowanie jednostkowe?
Testowanie to proces sprawdzania, czy aplikacja spełnia wymagania i osiąga pożądane funkcjonalności. Testowanie jednostkowe odnosi się do oceny pojedynczej funkcjonalności lub jednostki aplikacji.
3. Rozróżnij testowanie ręczne i automatyczne.

Testowanie ręczne jest wykonywane bez skryptów testowych i wymaga poświęcenia ludzkiego wysiłku na poszczególne etapy. Z drugiej strony testy automatyczne można przeprowadzić bez pomocy człowieka, korzystając z narzędzi technologicznych i oprogramowania. Automatyzacja testów jest tańsza i mniej czasochłonna niż testowanie ręczne. Ponadto testowanie ręczne jest mniej niezawodne, ponieważ nie można go zaprogramować.
4. Czy musisz napisać przypadek testowy dla każdej logiki?
Przypadek testowy to kod napisany w celu ustalenia logiki programu. W JUnit nie jest konieczne pisanie przypadku testowego dla każdej logiki, ale tylko dla tych, które można rozsądnie zepsuć.
Przypadek testu jednostkowego zawierałby zbiór danych wejściowych i oczekiwanych wyników. Pakiet org.junit zawiera kilka klas i interfejsów, które pomogą Ci w testach jednostkowych, takich jak Assert, Test, Before, After itp.
5. Wymień kilka przykładów narzędzi, z którymi możesz zintegrować JUnit?
JUnit to przyjazna dla użytkownika platforma do programowania w języku Java. Można go łatwo rozszerzyć i zintegrować z Eclipse IDE, Apache Ant i Maven.
6. Wymień kilka przydatnych rozszerzeń JUnit i wyjaśnij ich przeznaczenie.
Istnieją cztery główne rozszerzenia JUnit, a mianowicie Cactus, JWebUnit, XMLUnit i MockObject. Poniżej szczegółowo opisaliśmy ich zastosowania.
- Cactus: Jest to framework do testowania kodu Java po stronie serwera, który implementuje testy wewnątrz kontenera. Ekosystem kaktusów składa się z dwóch komponentów, a mianowicie Cactus Framework i Cactus Integration Modules. Framework jest silnikiem udostępniającym API do pisania testów, natomiast moduły integracyjne dbają o front-end z pomocą wtyczek.
- JWebUnit: Ta struktura oparta na javie zapewnia ujednolicony interfejs testowy, łącząc możliwości HtmlUnit i Selenium. JWebUnit ułatwia nawigację po aplikacjach internetowych za pomocą łączy, sprawdzania poprawności zawartości tabel, wprowadzania i przesyłania formularzy oraz innych funkcji. Oprócz wysokopoziomowego interfejsu Java API umożliwia szybkie tworzenie testów dzięki gotowym do użycia asercjom.
- XMLUnit: oferuje pojedynczą klasę rozszerzenia o nazwie XMLTestCase. XMLUnit udostępnia również klasy pomocnicze, które umożliwiają między innymi twierdzenia o ważności fragmentu XML (klasa Validator), różnice między dwoma fragmentami XML (Diff i DetailDiff), wynik przekształcenia XML (klasa Transformer).
- MockObject: Gdy uwzględnienie prawdziwych obiektów w teście jednostkowym jest niemożliwe lub niewykonalne, makiety mogą okazać się dobrodziejstwem. Możesz symulować zachowanie złożonych obiektów i włączyć je za pomocą następujących kroków kodowania:
- Twórz instancje pozorowanych obiektów
- Ustaw stan i oczekiwania
- Wywołaj kod domeny za pomocą pozorowanych obiektów jako parametrów
- Sprawdź spójność
7. Jak testujesz metody „chronione” i „prywatne”?
W metodzie chronionej klasa testowa i klasa docelowa są deklarowane w tym samym pakiecie. Jednak w metodzie prywatnej nie ma bezpośredniego sposobu testowania. Musisz zmienić metodę na „chronioną” lub przeprowadzić testowanie ręcznie.
8. Co dzieje się w JUnit, gdy typem zwracanym jest „string”?
W takiej sytuacji kompilacja przebiegnie pomyślnie, ale wykonanie się nie powiedzie. Stałoby się tak, ponieważ wszystkie metody testowe JUnit są zaprojektowane tak, aby zwracały „unieważnienie”.
9. Zdefiniuj (i) Urządzenia (ii) Test Suit (iii) Test Runner (iv) Klasy JUnit
(i) Oprawy są wykorzystywane jako podstawa do wykonywania testów, ustalając powtarzalność wyników. Oprawa testowa obejmuje ustalony stan zbioru obiektów. Metody obejmują:
- setUp(): Działa przed wywołaniem testowym.
- tearDown(): Działa po metodzie testowej.
(ii) Test Runner: Wykonuje przypadki testowe.

(iii) Klasy JUnit: Zawierają metody, które należy stosować podczas pisania i testowania JUnitów.
(iv) Pakiet Test Suite to pakiet lub zbiór przypadków testów jednostkowych do wspólnego uruchomienia. Możesz uruchomić test pakietu w JUnit za pomocą adnotacji @Suite lub @RunWith.
Przeczytaj: Projekt Systemu Zarządzania Biblioteką w Javie
10. Wymień kilka często używanych adnotacji JUnit.
Adnotacje to po prostu metatagi, które możesz dodać do swojego kodu. Adnotacja @Test oznacza konkretną metodę jako metodę testową. Inne przydatne adnotacje to @Before, @BeforeClass, @After i @AfterClass oraz @Ignores. Aby zaimplementować test JUnit, musisz znać znaczenie tych adnotacji. Zapoznajmy się więc z nimi jeden po drugim.
- Test: ta adnotacja informuje JUnit, że może uruchomić publiczną metodę void jako przypadek testowy. Jest to w zasadzie zamiennik dla org.junit.TestCase
- Przed: Jeśli chcesz wykonać jakiekolwiek instrukcje (na przykład warunki wstępne) przed konkretnym przypadkiem testowym, użyj @Before. Ta adnotacja umożliwia uruchamianie podobnych obiektów przed metodami testowymi.
- Przed klasą: możesz użyć adnotacji @BeforeClass w JUnit, aby uruchomić instrukcje przed wszystkimi przypadkami testowymi.
- Po: Powoduje uruchamianie niektórych instrukcji po każdym przypadku testowym, takich jak usuwanie plików tymczasowych, resetowanie zmiennych itp.
- Po klasie: adnotacja @AfterClass umożliwia wykonywanie instrukcji po wszystkich przypadkach testowych. Na przykład zwolnienie wszystkich zasobów po wykonaniu.
- Ignoruj: Służy do ignorowania niektórych instrukcji podczas wykonywania. Na przykład wyłączenie przypadków testowych.
Przeczytaj także : Pytania do rozmowy kwalifikacyjnej w języku Java
11. Wyjaśnij różne rodzaje klas JUnit.
Assert, TestCase i TestResult to tylko niektóre z najważniejszych klas JUnit. Assert dostarcza metody do przypadków testowych. TestCase zawiera przypadek testowy, definiujący urządzenie do wykonywania wielu testów. TestResult zawiera metody zbierania wyników.
12. Kiedy piszesz test jednostkowy?
W typowym cyklu rozwojowym testy jednostkowe są pisane przed kodem. Ta praktyka umożliwia programistom utrzymanie jakości ich kodu.
13. Dlaczego należy powstrzymać się od używania System.out.printIn() do debugowania?
Jeśli używasz System.out.printIn() do debugowania kodu, przyniesie to korzyści na dłuższą metę. Za każdym razem, gdy program jest uruchamiany, skutkowałoby to ręcznym skanowaniem całego wyniku, aby upewnić się, że kod działa poprawnie. Tak więc zakodowanie metod JUnit i wykonanie testów na plikach klas zajęłoby stosunkowo mniej czasu.
14. Gdzie trafiają śmieci testowe w JUnit?
Uczestnik testu posiada referencje przez cały czas trwania testu. W przypadku rozszerzonego testu obejmującego wiele instancji testowych, śmieci mogą nie zostać zebrane do końca uruchomienia testu. Możemy użyć funkcji tearDown() do zebrania śmieci przed zakończeniem testu. W tej metodzie jawnie ustawiamy obiekt na null.
15. Jak zainstalować Junit?

Pierwszym krokiem jest pobranie JUnit 5, najnowszej wersji JUnit (będzie to plik o nazwie junit.zip). Bylibyśmy zobowiązani do rozpakowania pliku dystrybucyjnego do katalogu %JUNIT_HOME%. Następnie dodamy JUnit do ścieżki klas.
Następnie przetestujemy instalację. Wymagałoby to uruchomienia przykładowych testów (znajdujących się nie w pliku junit.jar, ale w katalogu instalacyjnym) rozprowadzanych wraz z Junit. Na koniec potwierdzamy, że wszystkie testy przechodzą pomyślnie komunikatem „OK”. Jeśli nie, wrócilibyśmy i sprawdzili, czy junit.jar znajduje się w ścieżce klasy.
Sprawdź: Jak kodować, kompilować i uruchamiać projekty Java
Wniosek
Dzięki powyższym pytaniom do rozmowy kwalifikacyjnej JUnit możesz odświeżyć swoje koncepcje w ramach przygotowań do pracy dla programistów. Stanowiska takie jak Inżynier Automatyki Testów i Inżynier Oprogramowania obejmują również JUnit w pożądanym zestawie umiejętności. Rekruterzy chcą ocenić Twoją wiedzę techniczną i umiejętności komunikacyjne. Tak więc treść Twojej odpowiedzi i sposób jej przedstawienia miałyby znaczenie.
Jeśli chcesz dowiedzieć się więcej o tworzeniu pełnego stosu oprogramowania, zapoznaj się z dyplomem PG upGrad i IIIT-B w zakresie pełnego tworzenia oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.