JUnit

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
JUnit
Vývojář Kent Beck, Erich Gamma, David Saff
Aktuální verze 4.8.1 (12. 8. 2009)
Operační systém Cross-platform
Typ softwaru Jednotkové testy
Licence Common Public License
Web junit.org

JUnit je framework pro jednotkové testy psaný v programovacím jazyce Java. Na jeho vývoji se podíleli vývojáři – Kent Beck a Erich Gamma. JUnit je pravděpodobně nejúspěšnější z rodiny xUnit frameworků, kterou odstartoval Kent Beck se svým SUnit pro Smalltalk.

Obsah

Použití [editovat]

Jednotkové testy jsou základním kamenem vývojových technik test-driven development a Extrémního programování a má se za to, že právě JUnit stojí za vznikem těchto programovacích technik. JUnit byl později portován na mnoho dalších jazyků, např. C# (NUnit), Python (PyUnit), Fortran (fUnit), Perl (Test::Class a Test::Unit) a C++ (CPPUnit). Tato rodina frameworků pro jednotkové testy byla pojmenována xUnit.

Příklad [editovat]

Mějme třídu Calculator ve které máme některé operace (sčítání a dělení). Pro tuto třídu jsou níže uvedeny JUnit testy pro verze 3.8 a 4.

package mypackage;
 
public class Calculator {
        private double result = 0.0;
 
        public void sum(double sum) {
                result += sum;
        }
 
        public void divide(double divide) {
                result /= divide;
        }
 
        public double getResult() {
                return result;
        }
}

JUnit test verze 3.8 [editovat]

Tento unittest kontroluje správnost sčítání a návrat chybové hodnoty při dělení nulou.

package mypackage;
 
import junit.framework.*;
 
public class TestCalculator38 extends TestCase {
        public void testSum() {
                Calculator calc = new Calculator();
                calc.sum(4.0);
                calc.sum(7.0);
                assertEquals(11.0, calc.getResult());
        }
 
        public void testDivByZero() {
                Calculator calc = new Calculator();
                calc.sum(4.0);
                calc.divide(0.0);
                assertTrue(Double.POSITIVE_INFINITY == calc.getResult());
        }
}

JUnit verze 4 [editovat]

Tento test má stejnou funkcionalitu jako verze 3.8, jeho zápis však nevyžaduje, aby testovací metody začínaly předponou „test“. Syntaxe využívá novinek jazyka Java5 a novějších.

package mypackage;
 
import org.junit.*;
import static org.junit.Assert.*;
 
public class TestCalculator4 {
        @Test
        public void sum() {
                Calculator calc = new Calculator();
                calc.sum(4.0);
                calc.sum(7.0);
                assertEquals(11.0, calc.getResult());
        }
 
        @Test
        public void divByZero() {
                Calculator calc = new Calculator();
                calc.sum(4.0);
                calc.divide(0.0);
                assertTrue(Double.POSITIVE_INFINITY == calc.getResult());
 
        }
}

Spouštění testů [editovat]

Většina nových verzí vývojových prostředí má integrovanou podporu pro spouštění JUnit testů, je ale možné testy spustit i zvlášť a to buď s textovým nebo grafickým výstupem nebo přímo v programu pomocí příslušných tříd frameworku JUnit.

Související články [editovat]