[[oktatas:programozás:feladatok:speciális| < Speciális]] ====== Java tesztes feladatok ====== ===== Szimpla ===== ==== Feladat 0001 ==== Adott a következő jUnit alapú teszt: import org.junit.Test; import static org.junit.Assert.*; public class TesttomegTeszt { @Test public void tesztSzamitTerulet() { assertEquals(29, Testtomeg.szamitIndex(95, 1.80), 0); assertEquals(28, Testtomeg.szamitIndex(90, 1.80), 0); assertEquals(26, Testtomeg.szamitIndex(85, 1.80), 0); assertEquals(28, Testtomeg.szamitIndex(85, 1.75), 0); assertEquals(21, Testtomeg.szamitIndex(50, 1.55), 0); } } Feladatunk, hogy számoljuk ki a testtömegindexet, a következő képlet alapján: testtomegindex = tomeg / magassag^2 Írjon metódust, amely teljesíti a fenti tesztet. ==== Feladat 0002 ==== Adott a következő egységteszt, amely az alapszabadságot számító metódust tesztel, amelynek neve alapSzabadsag(). Az alapSzabadsag() metódusnak vissza kell adnia szabadnapot. Bemenő paraméter életkor. Írjon metódust, amely teljesíti a tesztet. import org.junit.Test; import static org.junit.Assert.*; public class Program01Teszt { @Test public void testAlapSzabadsag() { assertEquals(21, Program01.alapSzabadsag(25), 0); assertEquals(22, Program01.alapSzabadsag(28), 0); assertEquals(23, Program01.alapSzabadsag(32), 0); assertEquals(24, Program01.alapSzabadsag(34), 0); assertEquals(25, Program01.alapSzabadsag(36), 0); assertEquals(26, Program01.alapSzabadsag(38), 0); assertEquals(27, Program01.alapSzabadsag(40), 0); assertEquals(28, Program01.alapSzabadsag(42), 0); assertEquals(29, Program01.alapSzabadsag(44), 0); assertEquals(30, Program01.alapSzabadsag(45), 0); assertEquals(30, Program01.alapSzabadsag(46), 0); assertEquals(30, Program01.alapSzabadsag(50), 0); } } Az alapszabadság meghatározása: * 25 életévtől 21 nap * 28 életévtől 22 nap * 31 életévtől 23 nap * 33 életévtől 24 nap * 35 életévtől 25 nap * 37 életévtől 26 nap * 39 életévtől 27 nap * 41 életévtől 28 nap * 43 életévtől 29 nap * 45 életévtől 30 nap ==== Feladat 0003 ==== Írjon metódust, amely teljesíti a következő tesztet: import org.junit.Test; import static org.junit.Assert.*; public class Program01Test { @Test public void testCaesarCode() { assertEquals("de", Program01.caesarCode("ab", 3)); assertEquals("ef", Program01.caesarCode("bc", 3)); assertEquals("d", Program01.caesarCode("a", 3)); assertEquals("c", Program01.caesarCode("z", 3)); assertEquals("hi", Program01.caesarCode("ab", 7)); } } A caesarCode() metódus egy Caesar-kódoló. Egy szöveg minden betűjét eltolja az adott számú értékkel. A példában 3-mal toltuk el karaktereket. Az "a" helyet például "d"-t kapunk. A "b" helyett "e"-t kapunk, stb. Csak az angol ábécével kell dolgoznunk. Ha az ábécé végén járunk, például "z" betűt kell kódolni, akkor az ábécé elejéről folytatjuk, tehát "z" esetén "c"-t kell kapnunk. ==== Feladat 0004 ==== Adott a következő teszt: import org.junit.Test; import static org.junit.Assert.*; public class Program01Test { @Test public void testMethod() { assertTrue(Program01.isOdd(3)); assertTrue(Program01.isOdd(5)); assertTrue(Program01.isOdd(15)); assertTrue(Program01.isOdd(-1)); assertTrue(Program01.isOdd(-3)); assertFalse(Program01.isOdd(2)); assertFalse(Program01.isOdd(4)); assertFalse(Program01.isOdd(100)); assertFalse(Program01.isOdd(-100)); } } Írjon metódust, amely teljesíti a tesztet. Az isOdd() metódus megvizsgálja a paraméterként kapott egész számot, hogy páratlan-e. Ha páratlan, akkor visszaad egy "true" értéket. Ellenkező esetben "false" értékkel tér vissza. ===== Kivételkezelést is követelő ===== ==== Feladat 0501 ==== A következő teszt egy olyan programhoz készült, amely téglalap területének számítását fogja elvégezni. Írja meg azt a programot, amely teljesíti a tesztet. import org.junit.Test; import static org.junit.Assert.*; public class TeglalapTeszt { @Test public void tesztSzamitTerulet() { assertEquals(1050, Teglalap.szamitTerulet(30, 35), 0); assertEquals(1800, Teglalap.szamitTerulet(40, 45), 0); } @Test(expected = IllegalArgumentException.class) public void tesztExceptionSzamitTerulet() { Teglalap.szamitTerulet(0, 35); } }