JUnit - API
Najważniejszym pakietem w JUnit jest junit.framework, który zawiera wszystkie podstawowe klasy. Oto niektóre z ważnych klas:
Sr.No. | Nazwa klasy | Funkcjonalność |
---|---|---|
1 | Zapewniać | Zestaw metod asertywnych. |
2 | TestCase | Przypadek testowy definiuje urządzenie do uruchamiania wielu testów. |
3 | Wynik testu | TestResult zbiera wyniki wykonania przypadku testowego. |
4 | TestSuite | TestSuite to zbiór testów. |
Klasa Assert
Poniżej znajduje się deklaracja dla org.junit.Assert klasa -
public class Assert extends java.lang.Object
Ta klasa udostępnia zestaw metod potwierdzania przydatnych do pisania testów. Rejestrowane są tylko nieudane potwierdzenia. Oto niektóre z ważnych metod klasy Assert -
Sr.No. | Metody i opis |
---|---|
1 | void assertEquals(boolean expected, boolean actual) Sprawdza, czy dwa prymitywy / obiekty są równe. |
2 | void assertFalse(boolean condition) Sprawdza, czy warunek jest fałszywy. |
3 | void assertNotNull(Object object) Sprawdza, czy obiekt nie jest pusty. |
4 | void assertNull(Object object) Sprawdza, czy obiekt ma wartość null. |
5 | void assertTrue(boolean condition) Sprawdza, czy warunek jest prawdziwy. |
6 | void fail() Test nie powiedzie się i nie ma wiadomości. |
Wykorzystajmy na przykładzie niektóre z wyżej wymienionych metod. Utwórz plik klasy Java o nazwie TestJunit1.java w formacieC:\>JUNIT_WORKSPACE.
import org.junit.Test;
import static org.junit.Assert.*;
public class TestJunit1 {
@Test
public void testAdd() {
//test data
int num = 5;
String temp = null;
String str = "Junit is working fine";
//check for equality
assertEquals("Junit is working fine", str);
//check for false condition
assertFalse(num > 6);
//check for not null value
assertNotNull(temp);
}
}
Następnie utwórz plik klasy Java o nazwie TestRunner1.java w C: \> JUNIT_WORKSPACE, aby wykonać przypadek testowy.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner1 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit1.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Skompiluj przypadek testowy i klasy Test Runner przy użyciu javac.
C:\JUNIT_WORKSPACE>javac TestJunit1.java TestRunner1.java
Teraz uruchom Test Runner, który uruchomi przypadek testowy zdefiniowany w podanej klasie Test Case.
C:\JUNIT_WORKSPACE>java TestRunner1
Sprawdź dane wyjściowe.
true
Klasa TestCase
Poniżej znajduje się deklaracja dla org.junit.TestCase klasa -
public abstract class TestCase extends Assert implements Test
Przypadek testowy definiuje urządzenie do uruchamiania wielu testów. Niektóre z ważnych metodTestCase klasa są następujące -
Sr.No. | Metody i opis |
---|---|
1 | int countTestCases() Zlicza liczbę przypadków testowych wykonanych przez uruchomienie (wynik TestResult). |
2 | TestResult createResult() Tworzy domyślny obiekt TestResult. |
3 | String getName() Pobiera nazwę TestCase. |
4 | TestResult run() Wygodna metoda uruchamiania tego testu polegająca na zbieraniu wyników za pomocą domyślnego obiektu TestResult. |
5 | void run(TestResult result) Uruchamia przypadek testowy i zbiera wyniki w TestResult. |
6 | void setName(String name) Ustawia nazwę przypadku TestCase. |
7 | void setUp() Konfiguruje urządzenie, na przykład otwiera połączenie sieciowe. |
8 | void tearDown() Zrywa urządzenie, na przykład zamyka połączenie sieciowe. |
9 | String toString() Zwraca ciąg znaków reprezentujący przypadek testowy. |
Wykorzystajmy na przykładzie niektóre z wyżej wymienionych metod. Utwórz plik klasy Java o nazwieTestJunit2.java w C: \> JUNIT_WORKSPACE.
import junit.framework.TestCase;
import org.junit.Before;
import org.junit.Test;
public class TestJunit2 extends TestCase {
protected double fValue1;
protected double fValue2;
@Before
public void setUp() {
fValue1 = 2.0;
fValue2 = 3.0;
}
@Test
public void testAdd() {
//count the number of test cases
System.out.println("No of Test Case = "+ this.countTestCases());
//test getName
String name = this.getName();
System.out.println("Test Case Name = "+ name);
//test setName
this.setName("testNewAdd");
String newName = this.getName();
System.out.println("Updated Test Case Name = "+ newName);
}
//tearDown used to close the connection or clean up activities
public void tearDown( ) {
}
}
Następnie utwórz plik klasy Java o nazwie TestRunner2.java w C: \> JUNIT_WORKSPACE, aby wykonać przypadek testowy.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner2 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit2.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Skompiluj przypadek testowy i klasy Test Runner przy użyciu javac.
C:\JUNIT_WORKSPACE>javac TestJunit2.java TestRunner2.java
Teraz uruchom Test Runner, który uruchomi przypadek testowy zdefiniowany w podanej klasie Test Case.
C:\JUNIT_WORKSPACE>java TestRunner2
Sprawdź dane wyjściowe.
No of Test Case = 1
Test Case Name = testAdd
Updated Test Case Name = testNewAdd
true
Klasa TestResult
Poniżej znajduje się deklaracja dla org.junit.TestResult klasa -
public class TestResult extends Object
TestResult zbiera wyniki wykonania przypadku testowego. Jest to instancja wzorca Collecting Parameter. Struktura testów rozróżnia niepowodzenia i błędy. Awaria jest przewidywana i sprawdzana za pomocą asercji. Błędy to nieoczekiwane problemy, takie jak wyjątek ArrayIndexOutOfBoundsException. Niektóre z ważnych metodTestResult klasa są następujące -
Sr.No. | Metody i opis |
---|---|
1 | void addError(Test test, Throwable t) Dodaje błąd do listy błędów. |
2 | void addFailure(Test test, AssertionFailedError t) Dodaje awarię do listy awarii. |
3 | void endTest(Test test) Informuje wynik, że test został zakończony. |
4 | int errorCount() Pobiera liczbę wykrytych błędów. |
5 | Enumeration<TestFailure> errors() Zwraca wyliczenie dla błędów. |
6 | int failureCount() Pobiera liczbę wykrytych błędów. |
7 | void run(TestCase test) Uruchamia testCase. |
8 | int runCount() Pobiera liczbę uruchomionych testów. |
9 | void startTest(Test test) Informuje wynik, że test zostanie uruchomiony. |
10 | void stop() Oznaczenia, że uruchomienie próbne powinno się zakończyć. |
Utwórz plik klasy Java o nazwie TestJunit3.java w C: \> JUNIT_WORKSPACE.
import org.junit.Test;
import junit.framework.AssertionFailedError;
import junit.framework.TestResult;
public class TestJunit3 extends TestResult {
// add the error
public synchronized void addError(Test test, Throwable t) {
super.addError((junit.framework.Test) test, t);
}
// add the failure
public synchronized void addFailure(Test test, AssertionFailedError t) {
super.addFailure((junit.framework.Test) test, t);
}
@Test
public void testAdd() {
// add any test
}
// Marks that the test run should stop.
public synchronized void stop() {
//stop the test here
}
}
Następnie utwórz plik klasy Java o nazwie TestRunner3.java w C: \> JUNIT_WORKSPACE, aby wykonać przypadek testowy.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner3 {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit3.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Skompiluj przypadek testowy i klasy Test Runner przy użyciu javac.
C:\JUNIT_WORKSPACE>javac TestJunit3.java TestRunner3.java
Teraz uruchom Test Runner, który uruchomi przypadek testowy zdefiniowany w podanej klasie Test Case.
C:\JUNIT_WORKSPACE>java TestRunner3
Sprawdź dane wyjściowe.
true
Klasa TestSuite
Poniżej znajduje się deklaracja dla org.junit.TestSuite klasa:
public class TestSuite extends Object implements Test
TestSuite to zbiór testów. Uruchamia kolekcję przypadków testowych. Niektóre z ważnych metodTestSuite klasa są następujące -
Sr.No. | Metody i opis |
---|---|
1 | void addTest(Test test) Dodaje test do zestawu. |
2 | void addTestSuite(Class<? extends TestCase> testClass) Dodaje testy z danej klasy do pakietu. |
3 | int countTestCases() Zlicza liczbę przypadków testowych, które zostaną uruchomione przez ten test. |
4 | String getName() Zwraca nazwę zestawu. |
5 | void run(TestResult result) Uruchamia testy i zbiera ich wynik w TestResult. |
6 | void setName(String name) Ustawia nazwę pakietu. |
7 | Test testAt(int index) Zwraca test o podanym indeksie. |
8 | int testCount() Zwraca liczbę testów w tym zestawie. |
9 | static Test warning(String message) Zwraca test, który zakończy się niepowodzeniem i zarejestruje komunikat ostrzegawczy. |
Utwórz plik klasy Java o nazwie JunitTestSuite.java w C: \> JUNIT_WORKSPACE, aby utworzyć zestaw testów.
import junit.framework.*;
public class JunitTestSuite {
public static void main(String[] a) {
// add the test's in the suite
TestSuite suite = new TestSuite(TestJunit1.class, TestJunit2.class, TestJunit3.class );
TestResult result = new TestResult();
suite.run(result);
System.out.println("Number of test cases = " + result.runCount());
}
}
Skompiluj klasy zestawu testów przy użyciu javac.
C:\JUNIT_WORKSPACE>javac JunitTestSuite.java
Teraz uruchom Test Suite.
C:\JUNIT_WORKSPACE>java JunitTestSuite
Sprawdź dane wyjściowe.
No of Test Case = 1
Test Case Name = testAdd
Updated Test Case Name = testNewAdd
Number of test cases = 3