JUnit

JUnit
VývojářKent Beck, Erich Gamma, David Saff
Aktuální verze5.11.3 (21. října 2024)
Operační systémCross-platform
PlatformaJava Virtual Machine
Vyvíjeno vJava
Typ softwaruJednotkové testy
LicenceCommon Public License
Webjunit.org
Některá data mohou pocházet z datové položky.

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.

Použití

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

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, 4 a 5.

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 verze 3.8

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

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());
    }
}

JUnit verze 5

Tento test vychází z příkladu k verzi 4 s těmito rozdíly (pro JUnit 5):

  • všechny třídy frameworku JUnit jsou umístěny do nového package org.junit.jupiter.api
  • anotace @Test již nevyžaduje public metody a nemá žádné atributy (původní atributy expected a timout je řešeno modelem rozšíření)
  • používá se Java8
package mypackage;

import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;

public class TestCalculator5 {
    
    @Test
    void sum() {
        Calculator calc = new Calculator();
        calc.sum(4.0);
        calc.sum(7.0);
        assertEquals(11.0, calc.getResult(), () -> "Calculation error");
    }

    @Test
    void divByZero() {
        Calculator calc = new Calculator();
        calc.sum(4.0);
        calc.divide(0.0);
        assertTrue(Double.POSITIVE_INFINITY == calc.getResult());
    }
}

Spouštění testů

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

Read other articles:

Distrofi otot DuchenneHistopatologi otot gastroknemius dari pasien yang meninggal akibat distrofi otot pseudohipertrofik tipe Duchenne.Informasi umumSpesialisasiNeurologi  Distrofi otot Duchenne (bahasa Inggris: duchenne muscular dystrophy, disingkat DMD) adalah distrofi otot yang menjangkiti satu dari 3.600 anak laki-laki dan dapat menyebabkan degenerasi otot dan kematian.[1] Penyakit ini disebabkan oleh mutasi gen distrofin, gen terbesar di kromosom X manusia yang menyandi ...

 

ApogonRentang fosil: 55–0 jtyl PreЄ Є O S D C P T J K Pg N Eocene to present[1] Apogon robinsi Klasifikasi ilmiah Domain: Eukaryota Kerajaan: Animalia Filum: Chordata Kelas: Actinopterygii Ordo: Kurtiformes Famili: Apogonidae Subfamili: Apogoninae Genus: ApogonLacepède, 1801 Spesies tipe Apogon ruberLacepède, 1801 Spesies Lihat teks Apogon adalah dalah satu genus ikan dalam keluarga Apogonidae. Anggotanya adalah salah satu ikan yang paling umum ditemukan di terumbu karang....

 

Stone Cold Steve Austin Stone Cold Steve Austin in 2010 tijdens de San Diego Comic-Con Persoonlijke informatie Geboortenaam Steven James Anderson Volledige naam Steve Williams Nationaliteit  Verenigde Staten Geboorteplaats Austin Geboortedatum 18 december 1964 Lengte 1,88 m Gewicht 115 kg Carrière Debuut 8 december 1989 Met pensioen 30 maart 2003 Ringnaam The RingmasterStunning Steve AustinThe RattlesnakeStone Cold Steve Austin Trainer/coach Chris AdamsLewis Pearce Overige beroep(en) p...

Chronologies Chronologie Disney 1963 1964 1965  1966  1967 1968 1969Décennies :1930 1940 1950  1960  1970 1980 1990  Actualités de l'année Chronologie dans le monde 1963 1964 1965  1966  1967 1968 1969Décennies :1930 1940 1950  1960  1970 1980 1990Siècles :XVIIIe XIXe  XXe  XXIe XXIIeMillénaires :-Ier Ier  IIe  IIIe Chronologies géographiques Afrique Afrique du Sud, Algérie, Angola, Bénin, Botswana,...

 

Strada statale 287di NotoLocalizzazioneStato Italia Regioni Sicilia DatiClassificazioneStrada statale InizioSS 124 presso Palazzolo Acreide FineNoto Lunghezza24,085[1] km Provvedimento di istituzioneD.M. 16/11/1959 - G.U. 41 del 18/02/1960[2] GestoreANAS Manuale La strada statale 287 di Noto (SS 287) è una strada statale italiana della Sicilia che prende il nome dall'omonimo comune attraversato. Indice 1 Descrizione 1.1 Tabella percorso 2 Note 3 Altri progetti Descrizion...

 

Disambiguazione – Se stai cercando il nuovo ente, vedi Città metropolitana di Genova. Provincia di Genovaex provincia Provincia di Genova – VedutaPalazzo Doria-Spinola, sede della Provincia. LocalizzazioneStato Italia Regione Liguria AmministrazioneCapoluogo Genova Data di istituzione23 ottobre 1859 Data di soppressione31 dicembre 2014 TerritorioCoordinatedel capoluogo44°24′40.16″N 8°55′57.58″E / 44.411156°N 8.932661°E44.411156; 8.932661 (Pro...

أولد بروكفيل     الإحداثيات 40°49′38″N 73°36′07″W / 40.8272°N 73.6019°W / 40.8272; -73.6019   [1] تقسيم إداري  البلد الولايات المتحدة[2]  التقسيم الأعلى مقاطعة ناسو  خصائص جغرافية  المساحة 10.346945 كيلومتر مربع10.359484 كيلومتر مربع (1 أبريل 2010)  ارتفاع 29 متر  عد...

 

Nikolai Astrup Menteri Pemerintahan LokalPetahanaMulai menjabat 24 Januari 2020Perdana MenteriErna Solberg PendahuluMonica MælandPenggantiPetahanaMenteri DigitalisasiMasa jabatan22 Januari 2019 – 24 Januari 2020Perdana MenteriErna Solberg PendahuluJabatan dibentukPenggantiLinda Hofstad HellelandMenteri Pembangunan InternasionalMasa jabatan17 Januari 2018 – 22 Januari 2019Perdana MenteriErna Solberg PendahuluHeikki Holmås (2013)PenggantiDag Inge UlsteinAnggota Parle...

 

Cet article est une ébauche concernant le football. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations du projet football. RedBird Capital PartnersLogo de RedBird Capital Partners.HistoireFondation 2014 à New-YorkCadreSurnom RedBirdType Société de gestion de placementsForme juridique HoldingDomaine d'activité Football, MLB, NFLSiège New YorkPays  États-UnisOrganisationFondateur Gerry CardinaleSite web (en) redbirdcap.commodif...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Database forensics – news · newspapers · books · scholar · JSTOR (August 2010) (Learn how and when to remove this template message) Part of a series onForensic science Physiological Anthropology Biology Bloodstain pattern analysis Dentistry DNA phenotyping DNA ...

 

German physician, politician, historian and art historian Monument to Fritz Michel in Koblenz Fritz Michel (17 September 1877 – 30 October 1966) was a German physician, politician, historian and art historian. Life Michel was born in Niederlahnstein as the eldest son of a country doctor.[1] His parents were Theodor Michel and Luise Schild. He studied medicine at the universities of Eberhard Karls Universität Tübingen, Christian-Albrechts-Universität zu Kiel and Philipps-Universit...

 

Mikhail Dmitrievich ProkhorovLahirМихаил Дмитриевич Прохоров3 Mei 1965 (umur 59)Moskwa, RSFSR, Uni SovietKebangsaanRusiaPekerjaanKetua ForbesKekayaan bersihUS$11,4 miliar (Forbes)(2021)Situs webmdprokhorov.ru Mikhail Dmitrievich Prokhorov (IPA: [mʲɪxɐˈil ˈdmʲitrʲɪjɪvʲɪtɕ ˈproxərə]) (bahasa Rusia: Михаи́л Дми́триевич Про́хоров) (lahir 3 Mei 1965), adalah seorang miliarder Rusia, dianggap sebagai salah seorang oli...

Dia MirzaMirza pada tahun 2023LahirDia Handrich09 Desember 1981 (umur 42)Hyderabad, Andhra Pradesh, IndiaPekerjaanAktrisTahun aktif1999–GelarMiss Asia Pacific 2000Femina Miss India Asia Pacific 2000Suami/istri Sahil Sangha ​ ​(m. 2014; c. 2019)​ Vaibhav Rekhi ​(m. 2021)​ Anak2 Dia Mirza adalah seorang aktris, model, dan aktivis asal India.[1] Ia lahir di Hyderabad, India pada tahun 1981.[2 ...

 

Supertall skyscraper in Moscow, Russia Not to be confused with Mercury Tower in Malta. Mercury City TowerМеркурий Cити TауэрAlternative namesMercury City, Mercury Office TowerGeneral informationStatusCompletedTypeMixed-useArchitectural styleStructural ExpressionismLocationMoscow International Business CenterMoscow, RussiaCoordinates55°45′2″N 37°32′22″E / 55.75056°N 37.53944°E / 55.75056; 37.53944Construction started2006Completed2013CostUS$1 b...

 

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: American Association of Port Authorities – news · newspapers · books · scholar · JSTOR (April 2021) The American Association of Port Authorities (AAPA) is a trade association founded in 1912 that represents 150 port authorities in the Western Hemisphe...

Subgenre of jazz music This article is about the jazz style. For the album by Art Blakey and The Jazz Messengers, see Hard Bop (album). Hard bopArt Blakey and the Jazz Messengers, 1960. Pictured are Lee Morgan (left), Jymie Merritt and Wayne Shorter (center), and Art Blakey (right)Stylistic originsJazzbluesbeboprhythm and bluesgospel musicCultural origins1950s in New York City and DetroitDerivative formssoul jazzpost-bopstraight-ahead jazzneo-bop jazzOther topicsList of hard bop musicians Har...

 

VänernDari Hjortens UddePeta detail dari danau dengan daerah sekelilingnyaKoordinat58°55′N 13°30′E / 58.917°N 13.500°E / 58.917; 13.500Aliran masuk utamaKlarälvenAliran keluar utamaGöta älvTerletak di negaraSwediaArea permukaan5,650 km2[1]Kedalaman rata-rata27 m[1]Kedalaman maksimal106 m[1]Volume air153 km3[1]Ketinggian permukaan44 m[1]KepulauanBrommö, Djurö, Fågelö, Hammarö, Kållandsö, LuröLihat peta yang dip...

 

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (juillet 2014). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ». En pratique : Quelles sources sont attendues ? C...

City in Ohio, United StatesSpringboro, OhioCityCity of SpringboroLower Springboro from the airMotto: Live. Work. Play. Learn. Grow.Location of Springboro, OhioLocation of Springboro in Warren CountyCoordinates: 39°33′35″N 84°15′18″W / 39.55972°N 84.25500°W / 39.55972; -84.25500CountryUnited StatesStateOhioCountiesWarren, MontgomeryArea[1] • Total9.21 sq mi (23.85 km2) • Land9.21 sq mi (23.85...

 

 История Албании Иллирия Далмация Славянизация Албании Византийская Албания Арберия Королевство Албания Албанские княжества Войны Скандербега Лежская лига Венецианская Албания Османская Албания Албанские пашалыки Призренская лига Княжество Албания Первая миров...