Výukový program: Přístup k oblasti Datapool z testu JUnit


Cíle:

Vytvořit a přistupovat k oblasti Datapool z ukázkové testovací aplikace pomocí platformy Eclipse Test and Performance Tools Platform (TPTP).

Čas nezbytný

1 hodina

Než začnete

Před spuštěním tohoto výukového programu musíte:

  1. Instalovat platformu Eclipse a platformu Eclipse Test and Performance Tools Platform (TPTP).
  2. Pochopit základy testování JUnit. Podrobnější informace o testování JUnit lze nalézt v www.junit.org.
  3. Konfigurovat a spustit Řadič agentů, který odpovídá vaší verzi TPTP. Další informace naleznete na Začínáme s Řadičem agentů.


Popis

V tomto výukovém programu vytvoříte a otestujete aplikaci nazvanou MyShoppingCart. Pomocí platformy Eclipse Test and Performance Tools Platform (TPTP) vyvinete testy JUnit a vytvoříte oblast datapool, která bude poskytovat data do testovacího prostředí.

Tento výukový program vás provede následujícími postupy:

  1. Vytváření ukázkové uživatelské aplikace
  2. Nastavení testovací sady TPTP
  3. Vytváření oblasti Datapool a inicializace testovacích dat
  4. Úprava testovacích případů, které odkazují na oblast Datapool

Vytváření ukázkové uživatelské aplikace


V rámci této procedury vyvinete třídu MyShoppingCart. V následujících procedurách použijete platformy Eclipse Test and Performance Tools Platform k vývoji odpovídajícího testovacího prostředí.
  1. Vytvořte nový projekt Eclipse Java.
    • Z nabídky Soubor vyberte Soubor > Nový > Projekt... Objeví se dialogové okno Nový projekt.
    • Ze seznamu Průvodci vyberte Projekt Java a klepněte na Další. Objeví se stránka Vytvořit projekt Java.
    • Zadejte Příklad_oblasti_Datapool do názvu projektu a klepněte na Dokončit. Projekt Příklad_oblasti_Datapool se objeví v pohledu Navigátor.
  2. Vytvořte třídu MyShoppingCart.
    • V pohledu Navigátor klepněte pravým tlačítkem myši na projekt datapoolExample a vyberte Nová > Třída. Zobrazí se dialogové okno Nová třída Java.
    • Zadejte MyShoppingCart do pole Název.
    • Vymažte volbu k vytvoření metody main veřejná statická neobsazená main(String[] args).
    • Klepněte na Dokončit. V editoru Java se objeví soubor MyShoppingCart.java.
    • Do zdroje MyShoppingCart zadejte následující:
         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;	    	 	    	 	     		
      	}
      }
    • Uložte MyShoppingCart.java. Z nabídky Soubor vyberte Soubor > Uložit.

Nastavení testovací sady TPTP


V rámci této procedury vyvinete testovací sadu pro MyShoppingCartprocedura. Pomocí platformy Eclipse Test and Performance Tools Platform vyvinete test JUnit pro metodu itemCost.
  1. Otevřete perspektivu Test.
    • Z nabídky Soubor vyberte Okno > Otevřít perspektivu > Další.
    • Vyberte Test a klepněte na OK. Zobrazí se Navigátor testu.
  2. Vytvořte nový test TPTP JUnit.
    • V Navigátoru testu klepněte pravým tlačítkem myši na projekt Příklad_oblasti_Datapool a vyberte Nový > Prvek testu...
    • V dialogovém okně Prvek testu vyberte Test TPTP JUnit a klepněte na Další. Zobrazí se dialogové okno Nový testovací případ, které vás vybídne k přidání knihoven JUnit. Klepnutím na Ano přidáte knihovny JUnit.
    • Na stránce zdrojového kódu nového testu JUnit zadejte shoppingCartTest_src do pole Název. V oddíle Vybrat způsoby úpravy chování testu vyberte volbu úpravy V editoru testu (výchozí hodnota).
    • Klepněte na Dokončit. Zobrazí se editor testu TPTP JUnit a ukáže testovací sadu shoppingCartTest_src test suite. Karta Přehled zahrnuje popis testu, zdrojové informace a výpis testovacích metod. V současné době nejsou definovány žádné testovací metody. V rámci tohoto výukového programu editor testu TPTP JUnit generuje stuby metod, takže volba Implementovat chování testu jako kód v oddíle Zdrojové informace by měla být vymazána. Další informace naleznete v Editor testovací sady JUnit.
  3. Přidejte metody testItemCost a testShoppingCartConstructor.
    • Na kartě Testovací metody klepněte na Přidat. Zobrazí se výchozí název pro váš test.
    • Přidejte metodu testItemCost. Do pole Název zadejte testItemCost jako nový název testu. Do pole Popis zadejte Test pro metodu MyShoppingCart.itemCost(String, int).
    • Přidejte metodu testShoppingCartConstructor. Na kartě Testovací metody klepněte na Přidat. Do pole Název zadejte testShoppingCartConstructor jako nový název testu. Do pole Popis zadejte Test pro konstruktor MyShoppingCart.
  4. Konfigurujte chování provedení testu.
    • Přidejte smyčku provedení testu. Na kartě Chování klepněte na Přidat.. > Smyčka. Do pole Název zadejte Loop_MyShoppingCart. Do pole Počet iterací zadejte 1 (výchozí hodnota).
    • Přidejte vyvolání testShoppingCartConstructor. Vyberte Loop_MyShoppingCart a klepněte na Přidat... > vyvolání. Zobrazí se dialogové okno Vyvolání testu. Vyberte Vybrat testShoppingCartConstructor a klepněte na OK.
    • Přidejte vyvolání testItemCost. Vyberte Loop_MyShoppingCart a klepněte na Přidat... > vyvolání. Zobrazí se dialogové okno Vyvolání testu. Vyberte testItemCost a klepněte na OK.
    • Uložte testovací sadu. Z nabídky Soubor vyberte Soubor > Uložit.

      Poznámka: Příkaz Uložit způsobí, že editor testu TPTP JUnit vytvoří stuby metod testu v shoppingCartTest_src.java.
  5. Zadejte kód pro generované metody testShoppingCartConstructor a testItemCost testu JUnit.
    • Otevřete perspektivu Java. Z nabídky Soubor vyberte Okno > Otevřít perspektivu > Další... > Java.
    • Otevřete shoppingCartTest_src.java. V navigátoru otevřete složku projektu datapoolExample a poklepejte na shoppingCartTest_src.java. Obsah shoppingCartTest_src.java se zobrazí v editoru Java, včetně kódu k nastavení a provedení testovací sady a metod stubů testShoppingCartConstructor a testItemCost.
    • Pro metodu testShoppingCartConstructor zadejte následující kód.
      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);
      }
    • Pro metodu testItemCost zadejte následující kód.
      public void testItemCost()
      throws Exception
      {
      	MyShoppingCart cart = new MyShoppingCart();
      	double priceForTwo = cart.itemCost("Orchid", 2);
      	
      	assertTrue(priceForTwo == 11.98);
      }
    • Uložte shoppingCartTest_src.java. Z nabídky Soubor vyberte Soubor > Uložit.
  6. Otevřete perspektivu Test a vytvořte implementaci testu. Příklad najdete v části Vytváření implementace testu.
  7. Spusťte test pomocí své vlastní implementace.
    • V navigátoru testu klepněte pravým tlačítkem myši na testovací sadu shoppingCartTest_src a vyberte Spustit jako > Spustit.... Zobrazí se dialogové okno Spustit.
    • V podokně Konfigurace vyberte Test a potom klepněte na Nový.
    • V levém podokně konfigurace Spustit (Vybrat test, který má být spuštěn), rozbalte datapoolExample a vyberte testovací sadu shoppingCartTest_src.
    • V pravém podokně konfigurace Spustit vyberte oddíl implementace, kterou jste vytvořili.
    • Na kartě Protokoly testů vymažte volbu Použít výchozí a vyberte složku projektu datapoolExample pro umístění.
    • Klepnutím na Spustit spustíte test.
  8. Poklepejte na protokol testu shoppingCartTest_src, který se zobrazí v navigátoru testu. Zobrazí se protokol testu shoppingCartTest_src. Vyberte kartu Události k zobrazení podrobností testu. Měli byste vidět následující události: Start testovací sady, start Loop_MyShoppingCart, start testu, verdikt testu, zastavení testu, druhý start testu, druhý verdikt testu, druhé zastavení testu, zastavení smyčky, verdikt testovací sady a zastavení testovací sady.

Vytváření oblasti Datapool a inicializace testovacích dat


V rámci této procedury vytvoříte jednoduchou oblast Datapool k ukládání testovacích dat. Pomocí editoru oblasti Datapool definujete strukturální prvky oblasti Datapool, včetně proměnných (sloupce), záznamů (řádky) a tříd ekvivalence (skupiny souvisejících záznamů).
  1. Vytvořte soubor typu CSV (oddělený čárkou) včetně vašich testovacích dat. Zpravidla lze exportovat data do formátu CSV v aplikaci tabulkového kalkulátoru nebo databáze. Avšak v tomto výukovém programu zadáte data v textovém editoru.
    • V textovém editoru zadejte následující.
      ,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
    • Uložte soubor jako flowerData.csv v dočasném externím umístění.
  2. V platformě Eclipse otevřete perspektivu Test.
    • Z nabídky Soubor vyberte Okno > Otevřít perspektivu > Další.
    • Vyberte Test a klepněte na OK. Zobrazí se Navigátor testu.
  3. V navigátoru testu klepněte pravým tlačítkem myši na projekt a vyberte Nový > Prvek testu... Zobrazí se dialogové okno Nový prvek testu.
  4. V okně se seznamem Průvodci rozbalte složku Testovací aktiva a vyberte Datapool.
  5. Klepněte na Další. Zobrazí se dialogové okno Nová oblast Datapool.
  6. Vyberte složku projektu oblasti Datapool a název oblasti Datapool. V seznamu stávajících projektů vyberte projekt Příklad_oblasti_Datapool. V poli Název zadejte shoppingCartDatapool. Klepnutím na Další pokračujte a potom opět na Další otevřete stránku importu souboru CSV (oddělený čárkou).
  7. Importujte soubor typu CSV Data_květin.csv.
    • V poli Soubor CSV klepněte na Procházet a přejděte na Data_květin.csv.
    • Zkontrolujte volbu První řádek obsahuje názvy proměnných a navržené typy. První řádek souboru Data_květin.csv obsahuje záhlaví sloupce a typy.
    • Zkontrolujte volbu První sloupec obsahuje názvy třídy ekvivalence . Třídy ekvivalence seskupují související data. První sloupec souboru Data_květin.csv specifikuje jedinou třídu ekvivalence nazvanou "květiny".
  8. Klepněte na Dokončit. Pokud zadáte počáteční rozměry oblasti Datapool, které mohou být v rozporu s rozměry souboru CSV, zobrazí se dialogové okno. Chcete-li použít rozměry souboru CSV, klepněte na Ano. Klepnutím na Ne použijte zadané počáteční rozměry (a možná zkrátíte data v souboru CSV). Zobrazí se editor oblasti Datapool, v němž uvidíte data obsažená ve třídě ekvivalence květin.

    Podrobné informace o vytvoření oblasti Datapool naleznete ve Vytváření oblasti Datapool.


Úprava testovacích případů, které odkazují na oblast Datapool


V této proceduře použijete rozhraní API oblasti Datapool k nahrazení pevně naprogramovaných hodnot testu s odkazem na sloupce oblasti Datapool.

Přidání knihoven požadovaných rozhraním API oblasti Datapool

Rozhraní API oblasti Datapool vyžaduje různé knihovny platformy TPTP a Eclipse Modeling Framework (EMF). V této proceduře přidáte knihovny na cestu sestavení Java.
  1. Otevřete perspektivu Java. Z nabídky Soubor vyberte Okno > Otevřít perspektivu > Java.
  2. Otevřete vlastnosti projektu Příklad_oblasti_Datapool. V okně Navigátor nebo v Průzkumníku balíčků klepněte pravým tlačítkem myši na složku projektu Příklad_oblasti_Datapool a vyberte vlastnosti. Zobrazí se dialogové okno Vlastnosti pro Příklad_oblasti_Datapool.
  3. Na cestu sestavení Java přidejte tptp-models.jar.
    • V levém podokně vyberte Cesta sestavení Java.
    • V pravém podokně vyberte kartu Knihovny a klepněte na Přidat proměnnou... Zobrazí se dialogové okno zadání Nová položka proměnné cesty ke třídě. .
    • Vyberte proměnnou ECLIPSE_HOME a klepněte na Rozšířit... Zobrazí se dialogové okno Rozšíření proměnné. Otevřete složku plugins > org.eclipse.tptp.platform.models_Verze a vyberte tptp-models.jar, kde Verze je vaše číslo verze TPTP.
    • Klepnutím na OK přidáte knihovnu.
  4. Přidejte org.eclipse.emf.common_Verze.jar k cestě sestavení Java, kde Verze je vaše verze EMF.
    • V dialogovém okně Nová položka proměnné cesty ke třídě vyberte proměnnou ECLIPSE_HOME a klepněte na Rozšířit...
    • Otevřete složku modulů plug-in a vyberte org.eclipse.emf.common_Verze.jar, kde Verze je vaše verze EMF.
    • Klepnutím na OK přidáte knihovnu.
  5. Přidejte org.eclipse.emf.ecore_Verze.jar k cestě sestavení Java, kde Verze je vaše verze EMF.
    • V dialogovém okně Nová položka proměnné cesty ke třídě vyberte proměnnou ECLIPSE_HOME a klepněte na Rozšířit...
    • Otevřete složku modulů plug-in a vyberte org.eclipse.emf.ecore_Verze.jar, kde Verze je vaše verze EMF.
    • Klepnutím na OK přidáte knihovnu.
  6. Přidejte org.eclipse.core.runtime_Verze.jar k cestě sestavení Java, kde Verze je vaše verze platformy Eclipse.
    • V dialogovém okně Nová položka proměnné cesty ke třídě vyberte proměnnou ECLIPSE_HOME a klepněte na Rozšířit...
    • Otevřete složku modulů plug-in a vyberte org.eclipse.core.runtime_Verze.jar, kde Verze je vaše verze platformy Eclipse.
    • Klepnutím na OK přidáte knihovnu.
  7. Klepnutím na OK zavřete dialogové okno Vlastnosti.


Použití rozhraní API oblasti Datapool

V této proceduře upravíte třídu shoppingCartTest_src a metodu testShoppingCartConstructor na používání oblasti shoppingCartDatapool.
  1. V případě potřeby otevřete perspektivu Java. Z nabídky Soubor vyberte Okno > Otevřít perspektivu > Java.
  2. Otevřete shoppingCartTest_src.java. V navigátoru otevřete složku projektu datapoolExample a poklepejte na shoppingCartTest_src.java. Obsah shoppingCartTest_src.java se zobrazí v editoru Java.
  3. Do třídy shoppingCartTest_src přidejte následující příkazy importu.
    import org.eclipse.hyades.models.common.datapool.impl.*;
    import org.eclipse.hyades.execution.runtime.datapool.*;
  4. Deklarujte instanci třídy IDatapoolIterator. Tato instance třídy se bude inicializovat ve vašem kódu nastavení a použije se v testovacích metodách.
    public class shoppingCartTest_src extends HyadesTestCase {
    	
    	IDatapoolIterator dpIterator;
    	
    	//...
  5. Upravte metodu setUp na inicializaci vaší oblasti Datapool. V testovacím prostředí TPTP JUnit metoda setUp poskytuje společné příslušenství. Můžete použít setUp na inicializaci testovacích proměnných. Poznámka: Specifikujte svoji úplnou cestu pracovního prostoru v místě <pracovní prostor> v konstruktoru java.io.File.
    protected void setUp() throws Exception {
    	// Inicializuje továrnu oblasti Datapool
    	IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
    		
    	// Zavede oblast shoppingCartDatapool
    	IDatapool datapool = dpFactory.load(
    			new java.io.File("<workspace>\\datapoolExample\\shoppingCartDatapool.datapool"),
    			false);
    		
    	// Vytvoří iterátor na procházení oblasti Datapool
    	dpIterator = dpFactory.open(datapool,"org.eclipse.hyades.datapool.iterator.DatapoolIteratorSequentialPrivate");
    	
    	// Inicializuje oblast Datapool na procházení první třídy ekvivalence.
    	dpIterator.dpInitialize(datapool,0);
    }
    Poznámky:
    • Druhý parametr v metodě zavedení IDatapoolFactory udává, zda je instance oblasti Datapool sdílena. Pokud je hodnota nastavena na true, mezipaměť oblasti Datapool se kontroluje na stávající kopii oblasti Datapool. Pokud je hodnota nastavena na false, oblast Datapool je soukromou instancí. Úprava sdílené instance oblasti Datapool může ovlivnit ostatní uživatele a doporučuje se pouze pro omezená prostředí.
    • Pokud chcete programově upravit import oblasti Datapool org.eclipse.hyades.edit.datapool.
    • Druhý parametr v metodě otevření IDatapoolFactory představuje typ iterátoru. Ve sdílených oblastech Datapool použijte DatapoolIteratorSequentialPrivate.
  6. Upravte metodu testShoppingCartConstructor na používání oblasti shoppingCartDatapool.
    public void testShoppingCartConstructor()
    throws Exception
    {
    	MyShoppingCart cart = new MyShoppingCart();
    		
    	// Prochází oblastí datapool...
    	// Test, zda konstruktor inicializuje každý záznam květiny správně
    	while(!dpIterator.dpDone())
    	{
    		String Description = dpIterator.dpCurrent().getCell("Description").getStringValue();
    		double datapoolPrice = dpIterator.dpCurrent().getCell("Price").getDoubleValue();
    		
    		// Test, zda květina je doložena v aplikaci
    		Double applicationPrice;
    		assertNotNull(applicationPrice = (Double)cart.myFlowers.get(Description));
    		
    		// Test, zda cena v aplikaci je rovna ceně v oblasti Datapool
    		assertTrue(applicationPrice.doubleValue() == datapoolPrice);
    		
    		dpIterator.dpNext();
    	}
    }
  7. Uložte shoppingCartTest_src.java. Z nabídky Soubor vyberte Soubor > Uložit.
  8. Přidejte oblast Datapool ke svým artefaktům testu.
    • Otevřete perspektivu Test. V Navigátoru testu poklepáním na testDeployment ji otevřete v editoru.
    • Na kartě Dvojice vyberte testAsset a klepněte na Otevřít...
    • Na kartě Testovací aktiva klepněte na Přidat.... Vyberte oblast Datapool a klepněte na OK. Uložte aktivum.
  9. Spusťte test pomocí své vlastní implementace.
    • Otevřete perspektivu Test. V navigátoru testu klepněte pravým tlačítkem myši na testovací sadu shoppingCartTest_src a vyberte Spustit jako > Spustit.... Zobrazí se dialogové okno Spustit.
    • V levém podokně konfigurace Spustit vyberte testovací sadu shoppingCartTest_src.
    • V pravém podokně konfigurace Spustit vyberte implementaci, kterou jste vytvořili v oddíle Než začnete.
    • Na kartě Protokoly testů vymažte volbu Použít výchozí a vyberte složku projektu datapoolExample pro umístění.
    • Klepnutím na Spustit spustíte test.
  10. Poklepejte na nový protokol testu shoppingCartTest_src, který se zobrazí v Navigátoru testu. Zobrazí se protokol testu shoppingCartTest_src. Vyberte kartu Události k zobrazení podrobností výsledků testu.


Související pojmy
Obecné testovací úlohy a koncepty

Související úlohy
Vytváření implementace testu
Poskytnutí testů s proměnnými daty
Ruční vytváření testu JUnit

(C) Copyright IBM Corporation 2000, 2006. Všechna práva vyhrazena.