Mål:
Å opprette og få tilgang til en datapool fra en eksempeltestapplikasjon ved hjelp av Eclipses plattform for
test- og ytelsesverktøy (TPTP).
Nødvendig tid
1 time
Før du begynner med denne opplæringen, må du:
-
Installere Eclipse og Eclipses plattform for test- og ytelsesverktøy (TPTP).
- Ha en grunnleggende forståelse av JUnit-testing. Du finner mer informasjon om JUnit-testing under www.junit.org.
- Konfigurere og kjøre agentkontrolleren som tilsvarer TPTP-versjonen. Du finner mer informasjon under
Komme i gang med
agentkontrolleren.
Beskrivelse
I denne opplæringsdelen skal du opprette og teste en applikasjon kalt MyShoppingCart. Ved hjelp av
Eclipses plattform for test- og ytelsesverktøy (TPTP) utvikler du JUnit-tester og oppretter en datapool som skal
forsyne testmiljøet med data.
Opplæringsdelen tar deg gjennom følgende prosedyrer:
- Opprette et eksempel på en brukerapplikasjon
- Definere en TPTP-testpakke
- Opprette en datapool og initialisere testdata
- Endre testtilfeller slik at de refererer til en datapool
I denne prosedyren utvikler du MyShoppingCart-klassen. I de etterfølgende prosedyrene skal du bruke Eclipses
plattform for test- og ytelsesverktøy til å utvikle et tilsvarende testmiljø.
- Opprett et nytt Eclipse Java-prosjekt.
- Fra Fil-menyen velger du Fil > Ny(tt) > Prosjekt... Du får frem dialogboksen Nytt prosjekt.
- På Veivisere-listen velger du Java-prosjekt og klikker på Neste. Du får frem siden Opprett
et Java-prosjekt.
- Oppgi datapoolExample som Prosjektnavn og klikk på Fullfør.Prosjektet datapoolExample blir
vist i Navigator-visningen.
- Opprett MyShoppingCart-klassen.
- I Navigator-visningen høyreklikker du på datapoolExample-prosjektet og velger Ny(tt) >
Klasse. Dialogboksen Ny Java-klasse blir vist.
- Skriv MyShoppingCart i feltet Navn.
- Opphev valget for opprettelse av hovedmetoden public static void main(String[] args).
- Klikk på Fullfør. Filen MyShoppingCart.java blir vist i Java-redigeringsprogrammet.
- Skriv dette for MyShoppingCart-kilden:
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;
}
}
- Lagre MyShoppingCart.java. Velg Fil > Lagre fra Fil-menyen.
I denne prosedyren utvikler du en testpakke for MyShoppingCart-klassen. Ved hjelp av Eclipses plattform
for test- og ytelsesverktøy utvikler du en JUnit-test for itemCost-metoden.
- Åpne testperspektivet.
- Fra Fil-menyen velger du Vindu > Åpne perspektiv > Annet.
- Velg Test og klikk på OK. Du får frem testnavigatoren.
- Opprett en ny TPTP JUnit-test.
- I testnavigatoren høyreklikker du på datapoolExample-prosjektet og velger Ny(tt) > Testelement...
- I dialogboksen Testelement velger du TPTP JUnit-test og klikker på Neste. Du får frem
dialogboksen Nytt testtilfelle, der du blir spurt om du vil legge til JUnit-biblioteker. Klikk på Ja for å
legge til JUnit-biblioteker.
- På siden Ny JUnit-testkildekode skriver du shoppingCartTest_src i feltet Navn. Under
Velg hvordan testvirkemåten skal redigeres velger du alternativet I testredigeringsprogrammet
(standardverdien).
- Klikk på Fullfør. Du får frem redigeringsprogrammet for TPTP JUnit-test, der testpakken
shoppingCartTest_src blir vist. Flippen Oversikt inkluderer en testbeskrivelse, kildeinformasjon og en liste over
testmetoder. Det er for øyeblikket ikke definert noen testmetoder. I denne opplæringsdelen genererer
redigeringsprogrammet for TPTP JUnit-test metodestubber, og alternativet Implementer testvirkemåte
som kode i Kildeinformasjon-delen bør derfor ikke være valgt. Du finner mer informasjon under
Redigeringsprogram for JUnit-testpakke.
- Legg til metodene testItemCost og testShoppingCartConstructor.
- På flippen Testmetoder klikker du på Legg til. Det blir vist et standardnavn for testen.
- Legg til testItemCost-metoden. I feltet Navn oppgir du testItemCost for det nye testnavnet. I feltet
Beskrivelse skriver du Test for metoden MyShoppingCart.itemCost(String, int).
- Legg til testShoppingCartConstructor-metoden. På flippen Testmetoder klikker du på Legg til. I feltet Navn
oppgir du testShoppingCartConstructor for det nye testnavnet. I feltet Beskrivelse skriver du Test for
konstruktøren MyShoppingCart.
- Konfigurer virkemåten for testutføringen.
- Legg til en utføringssløyfe. På flippen Virkemåte klikker du på Legg til..
> Sløyfe. I feltet Navn skriver du Loop_MyShoppingCart. I feltet Antall gjentakelser skriver du
1 (standardverdien).
- Legg til en testShoppingCartConstructor-aktivering. Velg Loop_MyShoppingCart og klikk på Legg til... >
aktivering. Du får frem dialogboksen Testaktivering. Velg
testShoppingCartConstructor og klikk på OK.
- Legg til en testItemCost-aktivering. Velg Loop_MyShoppingCart og klikk på Legg til... >
aktivering. Du får frem dialogboksen Testaktivering. Velg testItemCost og klikk på OK.
- Lagre testpakken. Fra Fil-menyen velger du Fil > Lagre.
Merk: Kommandoen Lagre får redigeringsprogrammet for TPTP JUnit-test til å opprette
testmetodestubber i shoppingCartTest_src.java.
-
Oppgi kode for de genererte JUnit-testmetodene testShoppingCartConstructor og
testItemCost.
- Åpne Java-perspektivet. Fra Fil-menyen velger du Vindu > Åpne perspektiv > Annet...
>
Java.
- Åpne shoppingCartTest_src.java. I navigatoren åpner du
datapoolExample-prosjektmappen og dobbeltklikker på shoppingCartTest_src.java.
shoppingCartTest_src.java-innholdet blir vist i Java-redigeringsprogrammet, inkludert kode for å definere og utføre
testpakken, og metodestubber for testShoppingCartConstructor og testItemCost.
- Skriv koden nedenfor for testShoppingCartConstructor-metoden.
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);
}
- Skriv koden nedenfor for testItemCost-metoden.
public void testItemCost()
throws Exception
{
MyShoppingCart cart = new MyShoppingCart();
double priceForTwo = cart.itemCost("Orchid", 2);
assertTrue(priceForTwo == 11.98);
}
- Lagre shoppingCartTest_src.java. Fra Fil-menyen velger du Fil > Lagre.
- Åpne
testperspektivet og opprett en testdistribusjon. Du finner et eksempel under
Opprette en testdistribusjon.
-
Kjør testen med den tilpassede distribusjonen.
- I testnavigatoren høyreklikker du på shoppingCartTest_src-testpakken og velger Kjør
som > Kjør.... Du får frem konfigurasjonsdialogboksen Kjør.
- I ruten Konfigurasjoner velger du Test og klikker deretter på Ny(tt).
- I venstre rute i kjørekonfigurasjonen (Velg test som skal kjøres) utvider du datapoolExample og
velger shoppingCartTest_src-testpakken.
- I høyre rute i kjørekonfigurasjonen velger du distribusjonen du har opprettet.
- På flippen Testlogger opphever du valget av Bruk standarder og velger datapoolExample-prosjektmappen
for plasseringen.
- Klikk på Kjør for å starte testen.
- Dobbeltklikk på shoppingCartTest_src-testloggen, som blir vist i testnavigatoren. Testloggen
shoppingCartTest_src blir vist. Velg flippen Hendelser for å se testdetaljene. Du skal se følgende hendelser:
starten på testpakken, starten på Loop_MyShoppingCart, starten på testen, testutfall, slutt på test, andre
start på testen, andre testutfall, andre slutt på testen, slutt på sløyfe, testpakkeutfall og slutt på
testpakken.

I denne prosedyren kan du opprette en enkel datapool for lagring av testdata. Bruk redigeringsprogrammet for
datapool ti å definere de strukturelle elementene i en datapool, inkludert variabler (kolonner), poster (rader) og
ekvivalensklasser (grupper med beslektede poster).
- Opprett en CSV-fil (kommadelt) som inkluderer testdataene. Du kan vanligvis eksportere data i en
regnearkapplikasjon eller database til CSV-format. Men i denne øvelsesdelen skriver du dataene i et
tekstredigeringsprogram.
- Skriv følgende i et tekstredigeringsprogram.
,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
- Lagre filen som flowerData.csv på en midlertidig ekstern plassering.
- I Eclipse åpner du testperspektivet.
- Fra Fil-menyen velger du Vindu > Åpne perspektiv > Annet.
- Velg Test og klikk på OK. Du får frem testnavigatoren.
- I Testnavigator høyreklikker du på et prosjekt og velger Ny(tt)
> Testelementt... Du får frem dialogboksen Nytt testelement.
- I listeboksen Veiviser utvider du mappen Testressurser og velger Datapool.
- Klikk på Neste. Du får frem dialogboksen Ny
datapool.
- Velg prosjektmappen for datapoolen og datapoolnavnet. På listen over eksisterende
prosjekter velger du prosjektet datapoolExample. I feltet Navn skriver du shoppingCartDatapool. Klikk
på Neste for å fortsette, og deretter Neste en gang til for å åpne importsiden for CSV-fil
(kommadelt).
- Importer CSV-filen flowerData.csv.
- I feltet CSV-fil klikker du på Bla
gjennom og navigerer til flowerData.csv.
- Merk av for alternativet Første rad inneholder variabelnavn og foreslåtte
typer. Den
første raden i flowerData.csv inneholder kolonneoverskrifter og -typer.
- Merk av for alternativet Første kolonne inneholder navn på
ekvivalensklasser. Ekvivalensklasser grupperer
relaterte data. Den første kolonnen i flowerData.csv
oppgir en enkelt ekvivalensklasse kalt "flowers".
- Klikk på Fullfør. Hvis du har oppgitt de
første dimensjonene for datapoolen, og disse kan komme i konflikt med CSV-fildimensjonene, får du frem en
dialogboks. Klikk på Ja for å bruke dimensjonene til CSV-filen. Klikk på Nei for å bruke de oppgitte
første dimensjonene (og kanskje kutte av CSV-fildataene).
Du får frem redigeringsprogrammet for datapool, som viser dataene i ekvivalensklassen "flowers".
Du finner mer informasjon om hvordan du oppretter en datapool, under Opprette en datapool.
I denne fremgangsmåten kan du bruke datapool-APIen til å erstatte faste testverdier med referanser til
datapoolkolonner.
Legge til biblioteker som datapool-APIen trenger
Datapool-APIen krever forskjellige biblioteker for TPTP
og Eclipse Modeling Framework (EMF). I denne prosedyren kan du legge til bibliotekene i Java-byggebanen.
- Åpne Java-perspektivet. Fra Fil-menyen velger du Vindu > Åpne perspektiv >
Java.
- Åpne egenskapene for datapoolExample-prosjektet. I Navigator- eller Pakkeutforsker-vinduet høyreklikker du på
datapoolExample-prosjektmappen og velger egenskaper. Egenskapene for dialogboksen datapoolExample blir vist.
- Legg til tptp-models.jar i Java-byggebanen.
-
I venstre rute velger du Java-byggebane.
- I høyre rute velger du flippen Biblioteker og klikker på Legg til variabel.... Dialogboksen Ny
variabeloppføring for klassebane blir vist.
- Velg ECLIPSE_HOME-variabelen og klikk på Utvid.... Dialogboksen Variabelutvidelse blir vist. Åpne
plugin-moduler > org.eclipse.tptp.platform.models_versjon-mappen og velg
tptp-models.jar, der versjon er TPTP-versjonsnummeret.
- Klikk på OK for å legge til biblioteket.
- Legg til org.eclipse.emf.common_versjon.jar i Java-byggebanen, der versjon er EMF-versjonen.
-
I dialogboksen Ny variabeloppføring for klassebane, velger du ECLIPSE_HOME-variabelen og klikker på
Utvid...
- Åpne mappen for plugin-moduler og velg org.eclipse.emf.common_versjon.jar, der
versjon er EMF-versjonen.
- Klikk på OK for å legge til biblioteket.
- Legg til org.eclipse.emf.ecore_versjon.jar i Java-byggebanen,
der versjon er EMF-versjonen.
- I dialogboksen Ny variabeloppføring for klassebane, velger du ECLIPSE_HOME-variabelen og klikker på
Utvid...
- Åpne mappen for plugin-moduler og velg org.eclipse.emf.ecore_versjon.jar, der
versjon er EMF-versjonen.
- Klikk på OK for å legge til biblioteket.
- Legg til org.eclipse.core.runtime_versjon.jar i Java-byggebanen, der versjon er
versjonen av Eclipse-plattformen.
- I dialogboksen Ny variabeloppføring for klassebane, velger du ECLIPSE_HOME-variabelen og klikker på
Utvid...
- Åpne mappen for plugin-moduler og velg org.eclipse.core.runtime_versjon.jar, der
versjon er versjonen av Eclipse-plattformen.
- Klikk på OK for å legge til biblioteket.
- Klikk på OK for å lukke dialogboksen Egenskaper.
Bruke API-en
I denne prosedyren endrer du klassen shoppingCartTest_src og metoden
testShoppingCartConstructor slik at
shoppingCartDatapool blir brukt.
- Hvis nødvendig, åpner du Java-perspektivet. Fra Fil-menyen velger du Vindu > Åpne perspektiv >
Java.
- Åpne shoppingCartTest_src.java. I navigatoren åpner du
datapoolExample-prosjektmappen og dobbeltklikker på shoppingCartTest_src.java. shoppingCartTest_src.java-innholdet
blir vist Java-redigeringsprogrammet.
- Legg til følgende importsetninger i klassen shoppingCartTest_src.
import org.eclipse.hyades.models.common.datapool.impl.*;
import org.eclipse.hyades.execution.runtime.datapool.*;
- Deklarer en IDatapoolIterator-klasseforekomst. Denne klasseforekomsten blir initialisert i
konfigurasjonskoden og brukt i testmetoder.
public class shoppingCartTest_src extends HyadesTestCase {
IDatapoolIterator dpIterator;
//...
- Endre setUp-metoden slik at datapoolen initialiseres. I TPTP JUnit-testmiljøet har setUp-metoden felles
fast tilbehør. Du kan bruke setUp til å initialisere felles testvariabler. Merk: Oppgi en fullt kvalifisert
bane til arbeidsområdet i stedet for <workspace> i java.io.File-konstruktøren.
protected void setUp() throws Exception {
// Initialiser datapool-factory
IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
// Last inn shoppingCartDatapool-datapoolen
IDatapool datapool = dpFactory.load(
new java.io.File("<workspace>\\datapoolExample\\shoppingCartDatapool.datapool"),
false);
// Opprett en iterator for å traversere datapoolen
dpIterator = dpFactory.open(datapool,"org.eclipse.hyades.datapool.iterator.DatapoolIteratorSequentialPrivate");
// Initialiser datapoolen for å traversere den første ekvivalensklassen.
dpIterator.dpInitialize(datapool,0);
}
Merknader:
- Den andre parameteren i load-metoden for IDatapoolFactory viser om datapool-forekomsten deles. Hvis
verdien er "true", blir det kontrollert om det er et eksisterende eksemplar av datapoolen i datapoolens hurtigbuffer. Hvis
verdien er "false", er datapoolen en privat forekomst. Hvis du endrer datapool-forekomster som deles, kan det
ha innvirkning på andre brukere, og det bør derfor bare gjøres i begrensede miljøer.
- Hvis du vil redigere en datapool programmatisk, importerer du org.eclipse.hyades.edit.datapool.
- Den andre parameteren i open-metoden for IDatapoolFactory representerer typen iterator. Hvis du har
datapooler som deles, bruker du DatapoolIteratorSequentialPrivate.
- Endre testShoppingCartConstructor-metoden slik at den bruker shoppingCartDatapool.
public void testShoppingCartConstructor()
throws Exception
{
MyShoppingCart cart = new MyShoppingCart();
// Traverser gjennnom datapoolen...
// Test om konstruktøren initialiserer hver "flower"-post på riktig måte
while(!dpIterator.dpDone())
{
String Description = dpIterator.dpCurrent().getCell("Description").getStringValue();
double datapoolPrice = dpIterator.dpCurrent().getCell("Price").getDoubleValue();
// Test om "flower" er tatt hånd om i applikasjonen
Double applicationPrice;
assertNotNull(applicationPrice = (Double)cart.myFlowers.get(Description));
// Test at applikasjonsprisen tilsvarer prisen i datapoolen
assertTrue(applicationPrice.doubleValue() == datapoolPrice);
dpIterator.dpNext();
}
}
- Lagre shoppingCartTest_src.java. Fra Fil-menyen velger du Fil > Lagre.
- Legg til datapoolen i testArtifact.
- Åpne testperspektivet. I testnavigatoren dobbeltklikker du på testDeployment for å åpne den i
redigeringsprogrammet.
- På flippen Par velger du testAsset og klikker på Åpne...
- På flippen Testressurser klikker du på Legg til.... Velg datapoolen og klikk på OK. Lagre
ressursen.
- Kjør testen med den tilpassede distribusjonen.
- Åpne testperspektivet. I testnavigatoren høyreklikker du på shoppingCartTest_src-testpakken og velger Kjør
som > Kjør.... Du får frem konfigurasjonsdialogboksen Kjør.
- I venstre rute i kjørekonfigurasjonen velger du shoppingCartTest_src-testpakken.
- I høyre rute i kjørekonfigurasjonen velger du distribusjonen du har opprettet i delen
Før du begynner.
- På flippen Testlogger opphever du valget av Bruk standarder og velger datapoolExample-prosjektmappen
for plasseringen.
- Klikk på Kjør for å starte testen.
- Dobbeltklikk på den nye shoppingCartTest_src-testloggen, som blir vist i testnavigatoren. Testloggen
shoppingCartTest_src blir vist. Velg flippen Hendelser for å se testresultatdetaljene.