Java testovací třída

Podobné dokumenty
Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

20. Projekt Domácí mediotéka

Dědičnost. seskupování tříd do hierarchie. potomek získá všechny vlastnosti a metody. provádí se pomocí dvojtečky za názvem třídy.

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

17. Projekt Trojúhelníky

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

KTE / ZPE Informační technologie

Java - Kresba. 2/28/11 1/8 Java - kresba

Java - řazení objektů

Programování v Javě I. Únor 2009

Algoritmizace a programování

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Programování v Javě I. Leden 2008

Java - výjimky. private void vstup() throws IOException {... }

1. Téma 12 - Textové soubory a výjimky

Typický prvek kolekce pro české řazení

Abstraktní datové typy: zásobník

11. Dědičnost. Dědičnost strana 103

Testování. Zadání příkladu. Vytvoření kostry třídy. Obsah:

OOPR_05. Případové studie

Projekt Obrázek strana 135

Principy objektově orientovaného programování

8 Třídy, objekty, metody, předávání argumentů metod

JAVA Unit testing Java, zimní semestr

Abstraktní třída a rozhraní

Objekt. základní prvek v OOP. má vlastnosti. má metody. vznikne vytvoření nové instance definován pomocí třídy

Obrázek. Základní popis, zadání úkolu. Struktura tříd,

Úvod do programování - Java. Cvičení č.4

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Mnohotvarost (polymorfizmus)

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Generické programování

Java a XML. 10/26/09 1/7 Java a XML

Třídy a dědičnost. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Jazyk C# (seminář 3)

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Teoretické minimum z PJV

Quo vadis programování? Automatizace vyhodnocování studentských úloh

Třídy a objekty -příklady

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Vytváření a použití knihoven tříd

JUnit příklad na použití

Iterator & for cyklus

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

, Brno Připravil: David Procházka Návrhové vzory

Projekty pro výuku programování v jazyce Java

3 KTE / ZPE Informační technologie

Úvod do programovacích jazyků (Java)

Datové struktury. alg12 1

NPRG031 Programování II 1 / :25:46

NMIN201 Objektově orientované programování 1 / :36:09

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

Návrhové vzory design patterns význam a použití

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

1. Projekt Kalkulačka

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Anywhere - IT-break. Milan Lempera UnitTest.cz

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Seminář Java II p.1/43

Paměť počítače. alg2 1

public class Karel { private int position; public boolean issmiling; public int getposition() { return position;

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Více o konstruktorech a destruktorech

Algoritmizace a programování

15. Projekt Kalkulačka

Přehled probírané látky

Úvod do programovacích jazyků (Java)

9. přednáška - třídy, objekty

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Java Výjimky Java, zimní semestr

Čipové karty Lekařská informatika

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

KTE / ZPE Informační technologie

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Řídicí struktury. alg3 1

Testování, ladění a dokumentace programů

Třída jako datový typ. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Jazyk C++ I. Šablony 2

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Regulární výrazy. Vzory

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4

5 Rekurze a zásobník. Rekurzivní volání metody

SW_03. Implementace a testování

Motivační příklad reálný svět. výroba (assembly line)

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

19. Projekt Adventura

knihovna programátora

Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc.

OOPR_05. Případové studie

IRAE 07/08 Přednáška č. 7. Začátek (head)

Základy objektové orientace I. Únor 2010

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

Transkript:

Java testovací třída Kapitola má seznámit s možnostmi testovací třídy. Zdroje: http://voho.cz/wiki/informatika/vyvoj/testovani/, Ing. Vojtěch HORDĚJČUK: Testování, 15.3.2013 Rudolf Pecinovský: Java 7, Grada Publishing. a.s., 2012 Klíčové pojmy: Testovací třída Testovací třída určena pro testování správnosti funkcí programu (jednotka může být třída, část třídy nebo celý projekt) obsahuje jednotlivé testy v knihovně JUnit přilepí se na třídu, kterou chceme testovat odvodí od ni svůj název Vytvoření testovací třídy v místní nabídce třídy, kterou budeme chtít testovat, dáme Vytvořit testovací třídu v BlueJ nová testovací třda má ve štítku v UML diagramu unit test Struktura testovací třídy testovací přípravek = stav, v němž je testovaná třída připravena k testování vytvoří se vždy před spuštěním testů metoda vytvářející přípravek obsahuje automaticky všechny akce, které jsme provedli od posledního restartu vietuálního stroje provedeme akci vytvoření objektu? nabídka testovací třídy: Dosavadní činnost -> Testovací přípravek vyzkoušení funkce: Testovací přípravek -> Zásobník odkazů Testovací metody můžeme je vytvořit ručně 2013-03-19 Java - testovací třída 1/8

obecně mají tvar: assertequals(popis, ečekávaná hodnota, obdržená hodnota) assertequals(popis, ečekávaná hodnota, obdržená hodnota, tolerovaný rozdíl) pro reálné hodnoty asserttrue(obdržený výsledek) asserttrue(obdržený výsledek) můžeme je vytvořit ručně: Příklad Obrazce public class Kruh private int polomer; public Kruh(int polomer) this.polomer = polomer; public double vratobsah() return Math.PI * this.polomer * this.polomer; public double vratobvod() return 2d * Math.PI * this.polomer; import org.junit.test; import org.junit.before; import org.junit.after; import static org.junit.assert.*; public class KruhTest public void testvratobsah() System.out.println ("vratobsah"); Kruh instance = new Kruh (10); assertequals(math.pi * 10d * 10d, instance.vratobsah (), 0.0001); public void testvratobvod() System.out.println("vratObvod"); Kruh instance = new Kruh (20); assertequals(2d * Math.PI * 20d, instance.vratobvod (), 0.0001); /*************************************************************************** * Inicializace předcházející spuštění každého testu a připravující tzv. 2013-03-19 Java - testovací třída 2/8

* přípravek (fixture), což je sada objektů, s nimiž budou testy pracovat. */ @Before public void setup() /*************************************************************************** * Úklid po testu - tato metoda se spustí po vykonání každého testu. */ @After public void teardown() public class Obdelnik private int sirka; private int vyska; public Obdelnik(int sirka, int vyska) this.sirka = sirka; this.vyska = vyska; public int vratobsah() return this.vyska * this.sirka; public int vratobvod() return 2 * (this.vyska + this.sirka); public boolean jectverec() return (this.sirka == this.vyska); import org.junit.after; import org.junit.before; import org.junit.test; import static org.junit.assert.*; public class ObdelnikTest public void testvratobsah() System.out.println ("vratobsah"); Obdelnik instance1 = new Obdelnik (50, 100); assertequals(50*100, instance1.vratobsah ()); 2013-03-19 Java - testovací třída 3/8

public void testvratobvod() System.out.println("test metody vratobvod()"); Obdelnik instance = new Obdelnik(10, 50); assertequals(10+10+50+50, instance.vratobvod()); public void testjectverec() System.out.println("test metody jectverec()"); Obdelnik instance1 = new Obdelnik(10, 10); asserttrue(instance1.jectverec()); Obdelnik instance2 = new Obdelnik(20, 10); assertfalse(instance2.jectverec()); @Before public void setup() @After public void teardown() 2013-03-19 Java - testovací třída 4/8

Mohu je také vytvořit automaticky pomocí nástroje BluJ: restartovat virtuální stroj z nabídky: vytvořit testovací metodu jméno testu: test... spustí se metoda vytvářející testovací přípravek mohu začít posílat zprávy, které budou součástí vytvářeného testu vytvořím instanci zavolám pro ni testovanou metodu do metody zapíši také předpokládaný výsledek, případně toleranci (nabízí se sama) ublic class Trojuhelnik private int stranaa; private int stranab; private int stranac; public Trojuhelnik(int stranaa, int stranab, int stranac) this.stranaa = stranaa; this.stranab = stranab; this.stranac = stranac; 2013-03-19 Java - testovací třída 5/8

public double vratobsah() double s = (double)this.vratobvod()/2; return Math.sqrt(s*(s-stranaA)*(s-stranaB)*(s-stranaC)); public int vratobvod() return this.stranaa + this.stranab + this.stranac; public boolean jetrojuhelnik() if (this.stranaa+this.stranab > this.stranac && this.stranaa+this.stranac > this.stranab && this.stranac+this.stranab > this.stranaa) return true; else return false; 2013-03-19 Java - testovací třída 6/8

import org.junit.after; import org.junit.before; import org.junit.test; import static org.junit.assert.*; public class TrojuhelnikTest /*************************************************************************** * Inicializace předcházející spuštění každého testu a připravující tzv. * přípravek (fixture), což je sada objektů, s nimiž budou testy pracovat. */ @Before public void setup() /*************************************************************************** * Úklid po testu - tato metoda se spustí po vykonání každého testu. */ @After public void teardown() 2013-03-19 Java - testovací třída 7/8

public void testvratobsah() Trojuhelnik trojuhel1 = new Trojuhelnik(3, 5, 4); assertequals(6, trojuhel1.vratobsah(), 0.0001); public void testvratobvod() Trojuhelnik trojuhel1 = new Trojuhelnik(4, 5, 3); assertequals(12, trojuhel1.vratobvod()); public void testjetrojuhlenik() Trojuhelnik trojuhel1 = new Trojuhelnik(4, 5, 6); assertequals(true, trojuhel1.jetrojuhelnik()); Trojuhelnik trojuhel2 = new Trojuhelnik(2, 4, 7); assertequals(false, trojuhel2.jetrojuhelnik()); Trojuhelnik trojuhel3 = new Trojuhelnik(10, 5, 3); assertequals(false, trojuhel3.jetrojuhelnik()); Trojuhelnik trojuhel4 = new Trojuhelnik(2, 8, 6); assertequals(false, trojuhel4.jetrojuhelnik()); Mohu spouštět testy pro jednotlivé metody, třídy, nebo také spustit test pro celý projekt (volba Spustit testy) 2013-03-19 Java - testovací třída 8/8