Ismertető: Adatkészlet elérése JUnit tesztből


Célok:

Adatkészlet létrehozása és elérése egy Eclipse teszt- és teljesítményeszközök platformot (TPTP) használó példa-tesztalkalmazásból.

Szükséges idő

1 óra

Mielőtt elkezdi

Az ismertető megkezdése előtt a következőket kell tennie:

  1. Telepítse az Eclipse alkalmazást és az Eclipse teszt- és teljesítményeszközök platformot (TPTP).
  2. Szerezzen legalább alapismereteket a JUnit tesztelésről. A JUnit tesztelés további információit lásd: www.junit.org.
  3. Állítsa be és futtassa a TPTP változatának megfelelő ügynökvezérlőt. További információkért lásd: Az Ügynökvezérlő használatának megkezdése.


Leírás

Ebben az ismertetőben létrehoz és tesztel egy MyShoppingCart nevű alkalmazást. Az Eclipse teszt- és teljesítményeszközök platform (TPT) segítségével JUnit teszteket fejleszt, illetve létrehoz egy adatkészletet a tesztkörnyezet adatainak biztosításához.

Ez az ismertető az alábbi eljárásokat mutatja be:

  1. Minta-felhasználói alkalmazás létrehozása
  2. TPTP tesztkészlet beállítása
  3. Adatkészlet létrehozása és tesztadatok inicializálása
  4. Tesztlépések módosítása adatkészlet hivatkozásához

Minta-felhasználói alkalmazás létrehozása


Ebben az eljárásban alakítja ki a MyShoppingCart osztályt. Az ezt követő eljárásokban az Eclipse teszt- és teljesítményeszközök platformmal fejleszti ki az ennek megfelelő tesztkörnyezetet.
  1. Hozzon létre egy új Eclipse Java projektet.
    • Válassza a Fájl menü Fájl > Új > Projekt... menüpontját. Megjelenik az Új projekt párbeszédablak.
    • Válassza a Java projekt elemet a Varázslók listából, és kattintson a Tovább gombra.Megjelenik a Java projekt létrehozása oldal.
    • Adja meg a datapoolExample nevet a projekt neveként, és kattintson a Befejezés gombra.A datapoolExample projekt megjelenik a Navigátor nézetben.
  2. Hozza létre a MyShoppingCart osztályt.
    • A Navigátor nézetben kattintson a jobb egérgombbal a datapoolExample projektre, majd válassza az előugró menü Új > Osztály menüpontját. Megjelenik az Új Java osztály párbeszédablak.
    • Írja be a MyShoppingCart értéket a Név mezőbe.
    • Távolítsa el a kijelölést a public static void main(String[] args) főmetódus létrehozására szolgáló beállítás mellől.
    • Kattintson a Befejezés gombra. A MyShoppingCart.java fájl megjelenik a Java szerkesztőben.
    • Írja be a következőket a MyShoppingCart forrásaként:
         import java.util.*;
      
      public class MyShoppingCart {
      
      	public Hashtable myFlowers;
      	
      	public MyShoppingCart() {
      	    
      		myFlowers = new Hashtable();
      		myFlowers.put("Orchid", new Double(5.99));
      		myFlowers.put("Tulip", new Double(1.99));
      		myFlowers.put("White Poinsee", new Double(6.99));
      		myFlowers.put("White Rose", new Double(9.99));
      		myFlowers.put("Geraniums", new Double(4.99));		
      	}
      	
      	public double itemCost(String itemName, int itemQuantity)
      	{
      	     Double price = (Double)myFlowers.get(itemName);
      		
      	     if (price != null) {
      	    	 return price.doubleValue()*itemQuantity;
      	     }
      	     
      	     return -1;	    	 	    	 	     		
      	}
      }
    • Mentse el a MyShoppingCart.java fájlt. Válassza a Fájl > Mentés menüpontot.

TPT tesztkészlet beállítása


Ebben az eljárásban egy tesztkészletet fejleszt a MyShoppingCart osztály számára. Az Eclipse teszt- és teljesítményeszközök platform használatával előállít egy JUnit tesztet az itemCost metódushoz.
  1. Nyissa meg a Teszt perspektívát.
    • Válassza a Fájl menü Ablak > Perspektíva megnyitása > Egyéb menüpontot.
    • Válassza a Teszt lehetőséget és kattintson az OK gombra. Megjelenik a Teszt navigátor.
  2. Hozzon létre új TPTP JUnit tesztet.
    • A Teszt navigátorban kattintson a jobb egérgombbal a datapoolExample projektre, majd válassza az előugró menü Új > Teszt elem... menüpontját.
    • A Teszt elem párbeszédablakban válassza a TPTP JUnit teszt lehetőséget, és kattintson a Tovább gombra. Megjelenik az Új tesztlépés párbeszédablak, kérve a JUnit függvénytárak felvételét. Kattintson az Igen gombra JUnit függvénytárak felvételéhez.
    • Az Új JUnit teszt forráskód oldalon írja be a shoppingCartTest_src nevet a Név mezőbe. A Tesztviselkedés szerkesztésének módja részben válassza a Tesztszerkesztőben módosítás lehetőségét (az alapértelmezettet).
    • Kattintson a Befejezés gombra. Megjelenik a TPTP JUnit tesztszerkesztő, benne a shoppingCartTest_src tesztkészlettel. Az Áttekintés lapon a teszt leírása látható, a Forrásinformációk és a Tesztmetódusok felsorolása. Jelenelg nincs megadott tesztmetódus. Ebben az ismertetőben a TPTP JUnit tesztszerkesztő metóduscsonkokat állít elő, így a Forrásinformációk rész Tesztviselkedés megvalósítása kódként beállítás kiijelölését meg kell szüntetni. További információkért lásd: JUnit tesztkészlet szerkesztő.
  3. Vegye fel a testItemCost és testShoppingCartConstructor metódusokat.
    • Kattintson a Hozzáadás gombra a tesztmetódusok lapon. Megjelenik egy alapértelmezett név a teszthez.
    • Vegye fel a testItemCost metódust. A Név mezőben adja meg a testItemCost nevet az új tesztnek. A leírás mezőbe írja be a MyShoppingCart.itemCost(String, int) metódus tesztje szöveget.
    • Vegye fel a testShoppingCartConstructor metódust. Kattintson a Hozzáadás gombra a tesztmetódusok lapon. A Név mezőben adja meg a testShoppingCartConstructor nevet az új tesztnek. A leírás mezőbe írja be a MyShoppingCart konstruktor tesztje szöveget.
  4. Állítsa be a tesztvégrehajtás viselkedését.
    • Adjon hozzá egy ciklust a tesztvégrehajtáshoz. Kattintson a Hozzáadás... > Ciklus menüpontra a Viselkedés lapon. A Név mezőben adja meg a Loop_MyShoppingCart nevet. Az Ismétlések száma mezőbe írja be az 1 értéket (ami egyben az alapértelmezett).
    • Vegye fel a testShoppingCartConstructor hívást. Válassza ki a Loop_MyShoppingCart ciklust, és kattintson a Hozzáadás... > Hívás menüpontot. Megjelenik a Teszthívás párbeszédablak. Jelölje ki a testShoppingCartConstructor elemet, és kattintson az OK gombra.
    • Vegye fel a testItemCost hívást. Válassza ki a Loop_MyShoppingCart ciklust, és kattintson a Hozzáadás... > Hívás menüpontot. Megjelenik a Teszthívás párbeszédablak. Válassza a testItemCost lehetőséget és kattintson az OK gombra.
    • Mentse el a tesztkészletet. Válassza a Fájl menü Fájl > Mentés menüpontját.

      Megjegyzés: a Mentés parancs hatására a TPTP JUnit tesztszerkesztő metóduscsonkokat hoz létre a shoppingCartTest_src.java fájlban.
  5. Írja be a kódot az előállított testShoppingCartConstructor és testItemCost JUnit tesztmetódusokhoz.
    • Nyissa meg a Java perspektívát. Válassza a Fájl menü Ablak > Perspektíva megnyitása > Egyéb... > Java menüpontot.
    • Nyissa meg a shoppingCartTest_src.java fájlt. A Navigátorban nyissa meg a datapoolExample projektmappét, és kattintson duplán a shoppingCartTest_src.java fájlra. A shoppingCartTest_src.java tartalma megjelenik a Java szerkesztőben, beleértve a tesztkészlet beállításához és végrehajtásához szükséges kódot, valamint a testShoppingCartConstructor és testItemCost metódusok csonkját is.
    • Írja be az alábbi kódot a testShoppingCartConstructor metódushoz.
      public void testShoppingCartConstructor()
      throws Exception
      {
      	MyShoppingCart cart = new MyShoppingCart();
      	Double priceOrchid = (Double)cart.myFlowers.get("Orchid");
      	Double priceTulip = (Double)cart.myFlowers.get("Tulip");
      	
      	assertTrue(priceOrchid.doubleValue() == 5.99);
      	assertTrue(priceTulip.doubleValue() == 1.99);
      }
    • Írja be az alábbi kódot a testItemCost metódushoz.
      public void testItemCost()
      throws Exception
      {
      	MyShoppingCart cart = new MyShoppingCart();
      	double priceForTwo = cart.itemCost("Orchid", 2);
      	
      	assertTrue(priceForTwo == 11.98);
      }
    • Mentse el a shoppingCartTest.java fájlt. Válassza a Fájl menü Fájl > Mentés menüpontját.
  6. Nyissa meg a Teszt perspektívát és hozzon létre egy tesztkörnyezetet. Ehhez példát a Tesztkörnyezet létrehozása részben talál.
  7. Futtassa a tesztet az egyéni környezettel.
    • Kattintson a jobb egérgombbal a Tesztnavigátorban a shoppingCartTest_src tesztkészletre, majd válassza az előugró menü Futtatás másként > Futtatás... menüpontját. Megjelenik a Futtatási konfiguráció párbeszédablak.
    • A Konfigurációk panelen válassza a Teszt lehetőséget, és kattintson az Új gombra.
    • A Futtatási konfiguráció bal oldali panelén (Teszt kiválasztása futtatásra) bontsa ki a datapoolExample elemet, és jelölje ki a shoppingCartTest_src tesztkészletet.
    • A Futtatási konfiguráció jobb oldali panelén jelölje ki a létrehozott tesztkörnyezetet.
    • A Tesztnaplók lapon távolítsa el az Alapértelmezések használata beállítás kijelölését, és helyként válassza a datapoolExample projektmappát.
    • A teszt indításához kattintson a Futtatás gombra.
  8. Kattintson duplán a Tesztnavigátorban megjelenő shoppingCartTest_src tesztnaplóra. Megjelenik a shoppingCartTest_src tesztnapló. A teszt részleteinek megtekintéséhez válassza az Események lapot. Az alábbi eseményeket látja: tesztkészlet kezdete, Loop_MyShoppingCart kezdete, teszt kezdete, teszt döntése, teszt leállítása, második teszt kezdete, második teszt döntése, második teszt leállítása, ciklus leállítása, tesztkészlet döntése, és tesztkészlet leállítása.

Adatkészlet létrehozása és tesztadatok inicializálása


Ebben az eljárásban egyszerű adatkészletet hoz létre a tesztadatok tárolására. Az adatkészlet szerkesztővel határozza meg az adatkészlet szerkezeti elemeit, például a változókat (oszlopok), a rekordokat (sorok), illetve az egyenértékosztályokat (kapcsolódó rekordok csoportja).
  1. Hozzon létre egy CSV (vesszővel elválasztott) fájlt, benne a tesztadatokkal. Táblázatkezelő alkalmazásból vagy adatbázisból általában lehet CSV formátumba exportálni adatokat. Ebben az ismertetőben azonban szövegszerkesztőben írja be az adatokat.
    • Írja be a következőket egy szövegszerkesztőbe:
      ,ModelNumber::String,Description::String,Price::Double
      flowers,F0001,Orchid,5.99
      flowers,F0002,Tulip,1.99
      flowers,F0003,White Poinsee,6.99
      flowers,F0004,White Rose,9.99
      flowers,F0005,Geraniums,4.99
    • Mentse el a fájlt flowerData.csv néven egy ideiglenes külső helyre.
  2. Nyissa meg a Teszt perspektívát az Eclipse-ben.
    • Válassza a Fájl menü Ablak > Perspektíva megnyitása > Egyéb menüpontot.
    • Válassza a Teszt lehetőséget és kattintson az OK gombra. Megjelenik a Teszt navigátor.
  3. Kattintson a jobb egérgombbal egy projektre a Teszt navigátorban, majd válassza az előugró menü Új > Tesztelem... menüpontját. Megjelenik az Új tesztelem párbeszédablak.
  4. A Varázslók listában bontsa ki a Teszterőforrások mappát, és kattintson az Adatkészlet elemre.
  5. Kattintson a Tovább gombra. Megjelenik az Új adatkészlet párbeszédablak.
  6. Válassza ki az adatkészlet projekt mappát és az adatkészlet nevét. A meglévő projektek listájában jelölje ki a datapoolExample projektet. A Név mezőbe írja be a shoppingCartDatapool nevet. Kattintson a Tovább gombra a folytatáshoz, majd ismét a Tovább gombra, a CSV (vesszővel elválasztott) fájl importálása ablak megnyitásához.
  7. Importálja a flowerData.csv fájlt.
    • A CSV fájl mezőben kattintson a Tallózás gombra, és keresse meg a flowerData.csv fájlt.
    • Válassza ki az Az első sor változóneveket és javasolt típusokat tartalmaz lehetőséget. A flowerData.csv első sora fejléceket és típusokat tartalmaz.
    • Jelölje ki az Az első oszlop egyenértékosztály neveket tartalmaz lehetőséget. Az egyenértékosztályok kapcsolódó adatokat csoportosítanak. A flowerData.csv első oszlopa megad egy egyszerű, flowers nevű egyenértékosztályt.
  8. Kattintson a Befejezés gombra. Ha megadott kiinduló adatkészlet méreteket, melyek esetleg ütközhetnek a CSV fájlban megadott méretekkel, akkor megjelenik egy párbeszédablak. Kattintson az Igen gombra a CSV fájl méreteinek használatához. Kattintson a Nem gombra, hogy a megadott kiinduló méreteket használja (és valószínűleg csonkítsa a CSV fájl adatait). Megjelenik az Adatkészlet szerkesztő, benne a flowers egyenértékosztály tartalmazta adatokkal.

    Az adatkészletek létrehozásának részletes információit az Adatkészlet létrehozása részben találja.


Tesztlépések módosítása adatkészlet hivatkozásához


Ebben az eljárásban az adatkészlet API segítségével cseréli ki a programba kódolt tesztértékeket az adatkészlet oszlopaiban levőkkel.

Az j API igényelte függvénytárak hozzáadása

Az adatkészlet API különböző TPTP- és Eclipse Modeling Framework (EMF) függvénytárakat igényel. Ebben az eljárásban hozzáadja ezeket a függvénytárakat a Java összeépítési útvonalhoz.
  1. Nyissa meg a Java perspektívát. A fájl menüben válassza az Ablak > Perspektíva megnyitása > Java menüpontot.
  2. Nyissa meg a datapoolExample projekt tulajdonságait. A Navigátor- vagy Csomagböngésző ablakban kattintson a jobb egérgombbal a datapoolExample projektmappára, majd válassza az előugró menü Tulajdonságok menüpontját. Megjelennek a datapoolExample projekt tulajdonságai.
  3. Vegye fel a tptp-models.jar fájlt a Java összeépítési útvonalba.
    • A bal oldali panelen válassza a Java összeépítési útvonal elemet.
    • A jobb oldali panelen jelölje ki a Függvénytárak lapot, és kattintson a Változó hozzáadása... menüpontot. Megjelenik az Új Változó osztályútvonal bejegyzés párbeszédablak.
    • Jelölje ki az ECLIPSE_HOME változót, és kattintson a Kiterjesztés... gombra. Megjelenik a Változó kiterjesztése párbeszédablak. Nyissa meg a plugins > org.eclipse.tptp.platform.models_Verzió mappát, és válassza a tptp-models.jar elemet, ahol a Verzió a TPTP verziószáma.
    • A függvénytár hozzáadásához kattintson az OK gombra.
  4. Vegye fel az org.eclipse.emf.common_verzió.jar fájlt a Java összeépítési útvonalba, ahol a verzió az EMF verziószáma.
    • Az Új változó osztályútvonal bejegyzés párbeszédablakban válassza ki az ECLIPSE_HOME változót, és kattintson a Kiterjesztés... gombra.
    • Nyissa meg a bedolgozó mappát, és válassza ki az org.eclipse.emf.common_verzió.jar fájlt, ahol a verzió az EMF verziószáma.
    • A függvénytár hozzáadásához kattintson az OK gombra.
  5. Vegye fel az org.eclipse.emf.ecore_verzió.jar fájlt a Java összeépítési útvonalba, ahol a verzió az EMF verziószáma.
    • Az Új változó osztályútvonal bejegyzés párbeszédablakban válassza ki az ECLIPSE_HOME változót, és kattintson a Kiterjesztés... gombra.
    • Nyissa meg a bedolgozó mappát, és válassza ki az org.eclipse.emf.ecore_verzió.jar fájlt, ahol a verzió az EMF verziószáma.
    • A függvénytár hozzáadásához kattintson az OK gombra.
  6. Vegye fel az org.eclipse.core.runtime_verzió.jar fájlt a Java összeépítési útvonalba, ahol a verzió az Eclipse környezet verziószáma.
    • Az Új változó osztályútvonal bejegyzés párbeszédablakban válassza ki az ECLIPSE_HOME változót, és kattintson a Kiterjesztés... gombra.
    • Nyissa meg a bedolgozó mappát, és válassza ki az org.eclipse.core.runtime_verzió.jar fájlt, ahol a verzió az Eclipse környezet verziószáma.
    • A függvénytár hozzáadásához kattintson az OK gombra.
  7. A Tulajdonságok párbeszédablak bezárásához kattintson az OK gombra.


Az adatkészlet API használata

Ebben az eljárásban a shoppingCartTest_src osztály és a testShoppingCartConstructor metódus módosításával használja a shoppingCartDatapool adatkészletet.
  1. Nyissa meg a Java perspektívát, ha szükséges. A fájl menüben válassza az Ablak > Perspektíva megnyitása > Java menüpontot.
  2. Nyissa meg a shoppingCartTest_src.java fájlt. A Navigátorban nyissa meg a datapoolExample projektmappét, és kattintson duplán a shoppingCartTest_src.java fájlra. A Java szerkesztőben megjelenik a shoppingCartTest_src.java tartalma.
  3. Adja hozzá a következő importálási utasításokat a shoppingCartTest_src osztályhoz.
    import org.eclipse.hyades.models.common.datapool.impl.*;
    import org.eclipse.hyades.execution.runtime.datapool.*;
  4. Deklaráljon egy IDatapoolIterator osztálypéldányt. Ez az osztálypéldány lesz inicializálva a beállítási kódban, illetve használva a tesztmetódusokban.
    public class shoppingCartTest_src extends HyadesTestCase {
    	
    	IDatapoolIterator dpIterator;
    	
    	//...
  5. Módosítsa a setUp metódust az adatkészlet inicializálásához. A TPTP JUnit tesztkörnyezetben a setUp metódus általános kellékeket biztosít. A setUp metódussal inicializálhat általános tesztváltozókat. Megjegyzés: A java.io.File konstruktorban adja meg a teljes képzésű munkaterület útvonalat a <munkaterület> helyen.
    protected void setUp() throws Exception {
    	// Az adatkészlet gyár inicializálása
    	IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
    		
    	// A shoppingCartDatapool adatkészlet betöltése
    	IDatapool datapool = dpFactory.load(
    			new java.io.File("<workspace>\\datapoolExample\\shoppingCartDatapool.datapool"),
    			false);
    		
    	// Iterátor létrehozása az adatkészlet átvizsgálásához
    	dpIterator = dpFactory.open(datapool,"org.eclipse.hyades.datapool.iterator.DatapoolIteratorSequentialPrivate");
    	
    	// Az adatkészlet inicializálása az első egyenértékosztály átvizsgálásához
    	dpIterator.dpInitialize(datapool,0);
    }
    Megjegyzések:
    • Az IDatapoolFactory betöltési metódus második paramétere jelzi, hogy az adatkészlet példány osztott-e. Ha igen, akkor megtörténik az adatkészlet gyorsítótár átvizsgálása az adatkészlet meglévő másolata után. Ha nem az, akkor az adatkészlet egy privát példány. Egy osztott adatkészlet példány módosítása érinthet más felhasználókat is, így ez csak zárt környezetekben ajánlott.
    • Egy adatkészlet programból módosításához importálja az org.eclipse.hyades.edit.datapool adatkészletet.
    • Az IDatapoolFactory megnyitás metódus második paramétere az iterátor típusát jelzi. Osztott adatkészletekhez használja a DatapoolIteratorSequentialPrivate paramétert.
  6. Módosítsa a testShoppingCartConstructor metódust a shoppingCartDatapool adatkészlet használatához.
    public void testShoppingCartConstructor()
    throws Exception
    {
    	MyShoppingCart cart = new MyShoppingCart();
    		
    	// Adatkészlet átvizsgálása...
    	// Tesztelés, hogy a konstruktor megfelelően inicializál-e minden flower rekordot
    	while(!dpIterator.dpDone())
    	{
    		String Description = dpIterator.dpCurrent().getCell("Description").getStringValue();
    		double datapoolPrice = dpIterator.dpCurrent().getCell("Price").getDoubleValue();
    		
    		// Tesztelés, hogy a virág el van-e számolva az alkalmazásban
    		Double applicationPrice;
    		assertNotNull(applicationPrice = (Double)cart.myFlowers.get(Description));
    		
    		// Tesztelés, hogy az alkalmazás ára egyezik-e az adatkészletével
    		assertTrue(applicationPrice.doubleValue() == datapoolPrice);
    		
    		dpIterator.dpNext();
    	}
    }
  7. Mentse el a shoppingCartTest.java fájlt. Válassza a Fájl menü Fájl > Mentés menüpontját.
  8. Vegye fel az adatkészletet a testArtifact termékhez.
    • Nyissa meg a Teszt perspektívát. Kattintson duplán a Tesztnavigátorban a testDeployment elemre, hogy megnyissa a szerkesztőben.
    • A Párok lapon válassza a testAsset elemet, és kattintson a Megnyitás... gombra.
    • A Teszterőforrások lapon kattintson a Hozzáadás... gombra. Válassza ki az adatkészletet, és kattintson az OK gombra. Mentse el az erőforrást.
  9. Futtassa a tesztet az egyéni környezettel.
    • Nyissa meg a Teszt perspektívát. Kattintson a jobb egérgombbal a Tesztnavigátorban a shoppingCartTest_src tesztkészletre, majd válassza az előugró menü Futtatás másként > Futtatás... menüpontját. Megjelenik a Futtatási konfiguráció párbeszédablak.
    • A Futtatási konfiguráció bal oldali panelén jelölje ki a shoppingCartTest_src tesztkészletet.
    • A Futtatási konfiguráció jobb oldali panelén jelölje ki a Kezdeti lépések részben létrehozott tesztkörnyezetet.
    • A Tesztnaplók lapon távolítsa el az Alapértelmezések használata beállítás kijelölését, és helyként válassza a datapoolExample projektmappát.
    • A teszt indításához kattintson a Futtatás gombra.
  10. Kattintson duplán a Tesztnavigátorban megjelenő új shoppingCartTest_src tesztnaplóra. Megjelenik a shoppingCartTest_src tesztnapló. A teszteredmények részleteinek megtekintéséhez válassza az Események lapot.


Kapcsolódó fogalmak
Általános tesztelési feladatok és alapelvek

Kapcsolódó feladatok
Tesztkörnyezet létrehozása
Tesztek biztosítása változó adatokkal
JUnit teszt kézi létrehozása

(C) Copyright IBM Corporation 2000, 2006. Minden jog fenntartva.