Tavoitteet:
Tietovarannon luonti ja käsittely esimerkkitestisovelluksesta Eclipse TPTP (Test and
Performance Tools Platform) -ympäristössä.
Aikavaatimus
1 tunti
Ennen kuin aloitat tämän opetusohjelman, tee seuraavat toimet:
-
Asenna Eclipse ja Eclipse TPTP (Test and Performance Tools Platform) -ympäristö.
- Varmista, että hallitset JUnit-testauksen perustiedot. Lisätietoja JUnit-testauksesta on sivustossa www.junit.org.
- Määritä ja aja TPTP-versiota vastaava agentin ohjain. Englanninkielisiä lisätietoja on sivulla Getting started with the Agent Controller.
Kuvaus
Tässä opetusohjelmassa luodaan ja testataan sovellus nimeltä MyShoppingCart. Eclipse TPTP (Test and Performance Tools Platform) -ympäristön avulla kehitetään JUnit-testejä ja luodaan tietovaranto, josta saadaan tietoja testausympäristöön.
Opetusohjelma sisältää seuraavien toimien ohjeet:
- Mallikäyttäjäsovelluksen luonti
- TPTP-testipaketin asetus
- Tietovaraston luonti ja testitietojen alustus
- Testitapausten muokkaus niin, että ne viittaavat tietovarantoon
Seuraavassa kehitetään MyShoppingCart-luokka. Myöhemmin kehitetään vastaava testausympäristö Eclipse TPTP -ympäristön avulla.
- Luo uusi Eclipse-ohjelman Java-projekti.
- Valitse Tiedosto-valikosta Tiedosto > Uusi > Projekti.... Uusi projekti -valintaikkuna avautuu.
- Valitse ohjattujen toimintojen luettelosta Java-projekti ja valitse Seuraava.Luo Java-projekti -sivu avautuu.
- Kirjoita Projektin nimi -kohtaan datapoolExample ja valitse Valmis.Projekti datapoolExample tulee näkyviin siirtymisnäkymään.
- Luo MyShoppingCart-luokka.
- Napsauta navigaattorinäkymässä datapoolExample-projektia hiiren kakkospainikkeella ja valitse Uusi > Luokka. Uusi Java-luokka -valintaikkuna avautuu.
- Kirjoita Nimi-kenttään MyShoppingCart.
- Poista päämetodin (public static void
main(String[] args)) luontiin liittyvän valintaruudun valinta.
- Valitse Valmis. MyShoppingCart.java-tiedosto tulee näkyviin Java-muokkausohjelmassa.
- Kirjoita seuraava teksti MyShoppingCart-luokan lähdekoodiksi:
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;
}
}
- Tallenna MyShoppingCart.java-tiedosto. Valitse Tiedosto-valikosta Tiedosto > Tallenna.
Seuraavassa kehitetään MyShoppingCart-luokan testipaketti. Eclipse TPTP (Test and Performance Tools Platform) -ympäristön avulla kehitetään itemCost-metodin JUnit-testi.
- Avaa Testi-perspektiivi.
- Valitse Tiedosto-valikosta Ikkuna > Avaa perspektiivi > Muu.
- Valitse Testi-vaihtoehto ja napsauta OK-painiketta. Testin siirtymistoiminto tulee näyttöön.
- Luo uusi TPTP JUnit -testi.
- Napsauta testin siirtymistoiminnossa datapoolExample-projektia hiiren kakkospainikkeella ja valitse Uusi > Testielementti....
- Valitse Testielementti-valintaikkunassa TPTP JUnit -testi ja valitse Seuraava. Esiin tulee Uusi testitapaus -valintaikkuna, jossa kehotetaan lisäämään JUnit-kirjastoja. Lisää JUnit-kirjastoja valitsemalla Kyllä.
- Kirjoita Uuden JUnit-testin lähdekoodi -sivulla Nimi-kenttään shoppingCartTest_src. Valitse Valitse, kuinka testin toimintaa muokataan -kohdassa Testin muokkausohjelmassa -vaihtoehto (oletusarvo).
- Valitse Valmis. TPTP JUnit -testin muokkausohjelma avautuu, ja näytössä on shoppingCartTest_src-testipaketti. Yleiskuva-välilehdessä on testin kuvaus, lähdetiedot ja testimetodien luettelo. Tässä vaiheessa testimetodeja ei ole määritetty. Tätä opetusohjelmaa varten TPTP JUnit -testin muokkausohjelma luo metodin tukirakenteita, joten Lähdetiedot-osan Testitoiminnan toteutus koodina -valintaruudun valinta tulee poistaa. Lisätietoja on kohdassa JUnit-testipaketin muokkausohjelma.
- Lisää testItemCost- ja testShoppingCartConstructor-metodi.
- Napsauta Testimetodit-välilehdessä Lisää-painiketta. Testin oletusnimi tulee näkyviin.
- Lisää testItemCost-metodi. Kirjoita Nimi-kenttään uuden testin nimeksi testItemCost. Kirjoita Kuvaus-kenttään MyShoppingCart.itemCost(String, int)-metodin testi.
- Lisää testShoppingCartConstructor-metodi. Napsauta Testimetodit-välilehdessä Lisää-painiketta. Kirjoita Nimi-kenttään uuden testin nimeksi testShoppingCartConstructor. Kirjoita Kuvaus-kenttään MyShoppingCart-konstruktorin testi.
- Määritä testin toteutuksen toiminta.
- Lisää testin toteutussilmukka. Valitse Toiminta-välilehdessä Lisää... > Silmukka. Kirjoita Nimi-kenttään Loop_MyShoppingCart. Kirjoita Iteraatioiden lukumäärä -kenttään 1 (oletusarvo).
- Lisää testShoppingCartConstructor-kutsu. Valitse Loop_MyShoppingCart-silmukka ja valitse Lisää... > kutsu. Testin kutsu -valintaikkuna avautuu. Valitse testShoppingCartConstructor ja napsauta OK-painiketta.
- Lisää testItemCost-kutsu. Valitse Loop_MyShoppingCart-silmukka ja valitse Lisää... > kutsu. Testin kutsu -valintaikkuna avautuu. Valitse testItemCost ja napsauta OK-painiketta.
- Tallenna testipaketti. Valitse Tiedosto-valikosta Tiedosto > Tallenna.
Huomautus: Tallenna-komennon käyttö saa TPTP JUnit -testin muokkausohjelman luomaan testin metodin tukirakenteet kohteeseen shoppingCartTest_src.java.
-
Kirjoita luotujen JUnit-testimetodien testShoppingCartConstructor ja testItemCost koodi.
- Avaa Java-perspektiivi. Valitse Tiedosto-valikosta Ikkuna > Avaa perspektiivi > Muu... > Java.
- Avaa shoppingCartTest_src.java. Avaa siirtymistoiminnossa datapoolExample-projektikansio ja kaksoisnapsauta kohdetta shoppingCartTest_src.java. Tiedoston shoppingCartTest_src.java sisältö tulee näkyviin Java-muokkausohjelmaan, mukaan lukien testipaketin asetukseen ja toteutukseen liittyvä koodi sekä testShoppingCartConstructor- ja testItemCost-kohteiden metodin tukirakenteet.
- Kirjoita testShoppingCartConstructor-metodille seuraava koodi.
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);
}
- Kirjoita testItemCost-metodille seuraava koodi.
public void testItemCost()
throws Exception
{
MyShoppingCart cart = new MyShoppingCart();
double priceForTwo = cart.itemCost("Orchid", 2);
assertTrue(priceForTwo == 11.98);
}
- Tallenna shoppingCartTest_src.java. Valitse Tiedosto-valikosta Tiedosto > Tallenna.
- Avaa Testi-perspektiivi ja luo testin käyttöönotto. Esimerkki on kohdassa Testin käyttöönoton luonti.
-
Aja testi käyttämällä mukautettua käyttöönottoa.
- Napsauta testin siirtymistoiminnossa shoppingCartTest_src-testipakettia hiiren kakkospainikkeella ja valitse Aja muodossa > Aja.... Ajon määritysikkuna avautuu.
- Valitse Kokoonpanot-ruudussa Testi ja napsauta sitten Uusi-painiketta.
- Laajenna ajon määritysikkunan vasemmassa ruudussa (Valitse ajettava testi) datapoolExample-kohde ja valitse shoppingCartTest_src-testipaketti.
- Valitse aiemmin luotu käyttöönotto ajon määritysikkunan oikeanpuoleisessa ruudussa.
- Poista Testilokit-välilehdessä Käytä oletusarvoja -asetuksen valinta ja valitse sijainniksi datapoolExample-projektikansio.
- Aloita testi valitsemalla Aja.
- Kaksoisnapsauta testin siirtymistoiminnossa näkyvää shoppingCartTest_src-testilokia. ShoppingCartTest_src-testiloki tulee näkyviin. Voit tarkastella testin tietoja valitsemalla Tapahtumat-välilehden. Seuraavat tapahtumat ovat näkyvissä: testipaketin aloitus, Loop_MyShoppingCart-silmukan aloitus, testin aloitus, testin tulos, testin lopetus, toinen testin aloitus, toinen testin tulos, toinen testin lopetus, silmukan lopetus, testipaketin tulos ja testipaketin lopetus.

Seuraavassa luodaan yksinkertainen tietovaranto testiaineiston tallennusta varten. Tietovarannon muokkausohjelman avulla määritetään tietovarannon rakenne-elementit, kuten muuttujat (sarakkeet), tietueet (rivit) ja vastaavuusluokat (toisiinsa liittyvien tietueiden ryhmät).
- Luo CSV-tiedosto, joka sisältää testiaineiston. Yleensä tiedot voi viedä CSV-muodossa taulukkolaskentasovellukseen tai tietokantaan. Tässä opetusohjelmassa tiedot kuitenkin kirjoitetaan tekstinmuokkausohjelmaan.
- Kirjoita seuraavat rivit tekstinmuokkausohjelmaan.
,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
- Tallenna tiedosto nimellä flowerData.csv väliaikaiseen ulkoiseen sijaintiin.
- Avaa Eclipsen Testi-perspektiivi.
- Valitse Tiedosto-valikosta Ikkuna > Avaa perspektiivi > Muu.
- Valitse Testi-vaihtoehto ja napsauta OK-painiketta. Testin siirtymistoiminto tulee näyttöön.
- Napsauta testin siirtymistoiminnossa projektia hiiren kakkospainikkeella ja valitse Uusi > Testielementti....
Uusi testielementti -valintaikkuna avautuu.
- Laajenna Ohjatut toiminnot -luetteloruudussa Testiresurssit-kansio ja
valitse Tietovaranto.
- Valitse Seuraava. Uusi tietovaranto -valintaikkuna avautuu.
- Valitse tietovarannon projektikansio ja tietovarannon nimi. Valitse projektiluettelosta datapoolExample-projekti. Kirjoita Nimi-kenttään shoppingCartDatapool. Jatka valitsemalla Seuraava ja valitse sitten Seuraava uudelleen, niin CSV-tiedoston tuontisivu avautuu.
- Tuo CSV-tiedosto flowerData.csv.
- Valitse CSV-tiedosto-kentässä Selaa ja siirry tiedoston flowerData.csv sijaintiin.
- Valitse Ensimmäinen rivi sisältää muuttujien nimet ja ehdotetut lajit -valintaruutu. Tiedoston flowerData.csv ensimmäinen rivi sisältää sarakkeiden otsikot ja lajit.
- Valitse Ensimmäinen sarake sisältää vastaavuusluokkien nimet -valintaruutu. Vastaavuusluokat ryhmittävät toisiinsa liittyviä tietoja. Tiedoston flowerData.csv ensimmäisessä sarakkeessa määritetään flowers-niminen vastaavuusluokka.
- Valitse Valmis. Jos olet määrittänyt .csv-tiedoston ulottuvuuksien kanssa mahdollisesti ristiriitaiset alkuperäiset tietovarannon ulottuvuudet, valintaikkuna avautuu. Valitse Kyllä, jos haluat käyttää CSV-tiedoston dimensioita. Valitse Ei, jos haluat käyttää määritettyjä alkuperäisiä dimensioita (ja mahdollisesti katkaista CSV-tiedoston tiedot).Tietovarannon muokkausohjelma tulee näyttöön, ja näkyvissä ovat flowers-vastaavuusluokan sisältämät tiedot.
Lisätietoja tietovarannon luonnista on kohdassa Tietovarannon luonti.
Seuraavassa korvataan pysyvästi koodatut testiarvot viitteillä tietovarannon sarakkeisiin käyttämällä tietovarannon ohjelmointirajapintaa.
Tietovarannon ohjelmointirajapinnan vaatimien kirjastojen lisäys
Tietovarannon ohjelmointirajapinta vaatii tiettyjä TPTP- ja EMF (Eclipse Modeling Framework) -kirjastoja. Seuraavassa kirjastot lisätään Java-koontipolulle.
- Avaa Java-perspektiivi. Valitse Tiedosto-valikosta Ikkuna > Avaa perspektiivi > Java.
- Avaa datapoolExample-projektin ominaisuudet. Napsauta siirtymistoiminnossa tai pakettien selausnäkymässä datapoolExample-projektikansiota hiiren kakkospainikkeella ja valitse Ominaisuudet. Ominaisuudet: datapoolExample -valintaikkuna avautuu.
- Lisää tptp-models.jar-tiedosto Java-koontipolkuun.
-
Valitse vasemmasta ruudusta Java-koontipolku.
- Valitse oikeanpuoleisessa ruudussa Kirjastot-välilehti ja valitse Lisää muuttuja.... Uusi muuttujan luokkapolkumerkintä -valintaikkuna avautuu.
- Valitse ECLIPSE_HOME-muuttuja ja valitse Laajenna.... Muuttujan tunniste -valintaikkuna avautuu. Avaa kansiolisäosat > org.eclipse.tptp.platform.models_versio ja valitse tptp-models.jar, jossa versio on TPTP-versionumero.
- Lisää kirjasto valitsemalla OK.
- Lisää Java-koontipolkuun tiedosto org.eclipse.emf.common_versio.jar, jossa versio on EMF-versio.
-
Valitse Uusi muuttujan luokkapolkumerkintä -valintaikkunassa ECLIPSE_HOME-muuttuja ja valitse Laajenna....
- Avaa Lisäosat-kansio ja valitse org.eclipse.emf.common_versio.jar, jossa versio on EMF-versio.
- Lisää kirjasto valitsemalla OK.
- Lisää Java-koontipolkuun tiedosto org.eclipse.emf.ecore_versio.jar, jossa versio on EMF-versio.
- Valitse Uusi muuttujan luokkapolkumerkintä -valintaikkunassa ECLIPSE_HOME-muuttuja ja valitse Laajenna....
- Avaa Lisäosat-kansio ja valitse org.eclipse.emf.ecore_versio.jar, jossa versio on EMF-versio.
- Lisää kirjasto valitsemalla OK.
- Lisää Java-koontipolkuun tiedosto org.eclipse.core.runtime_versio.jar, jossa versio on Eclipse-ympäristön versio.
- Valitse Uusi muuttujan luokkapolkumerkintä -valintaikkunassa ECLIPSE_HOME-muuttuja ja valitse Laajenna....
- Avaa Lisäosat-kansio ja valitse org.eclipse.core.runtime_versio.jar, jossa versio on Eclipse-ympäristön versio.
- Lisää kirjasto valitsemalla OK.
- Sulje Ominaisuudet-valintaikkuna napsauttamalla OK-painiketta.
Tietovarannon ohjelmointirajapinnan käyttö
Seuraavassa muokataan shoppingCartTest_src-luokkaa ja testShoppingCartConstructor-metodia, niin että ne käyttävät
shoppingCartDatapool-tietovarantoa.
- Avaa tarvittaessa Java-perspektiivi. Valitse Tiedosto-valikosta Ikkuna > Avaa perspektiivi > Java.
- Avaa shoppingCartTest_src.java. Avaa siirtymistoiminnossa datapoolExample-projektikansio ja kaksoisnapsauta kohdetta shoppingCartTest_src.java. Tiedoston shoppingCartTest_src.java sisältö tulee näkyviin Java-muokkausohjelmassa.
- Lisää shoppingCartTest_src-luokkaan seuraavat tuontilauseet.
import org.eclipse.hyades.models.common.datapool.impl.*;
import org.eclipse.hyades.execution.runtime.datapool.*;
- Esittele IDatapoolIterator-luokan ilmentymä. Tämä luokan ilmentymä alustetaan asetuskoodissa, ja sitä käytetään testimetodeissa.
public class shoppingCartTest_src extends HyadesTestCase {
IDatapoolIterator dpIterator;
//...
- Muokkaa setUp-metodia, niin että se alustaa tietovarannon. TPTP JUnit -testiympäristössä setUp-metodi määrittää yleiset käytettävät asetukset. Voit alustaa yleiset testimuuttujat setUp-metodin avulla. Huomautus: Määritä työtilan tarkka polku java.io.File-konstruktorin <workspace>-merkinnän tilalle.
protected void setUp() throws Exception {
// Alustetaan tietovarannon factory-metodi
IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
// Ladataan shoppingCartDatapool-tietovaranto
IDatapool datapool = dpFactory.load(
new java.io.File("<workspace>\\datapoolExample\\shoppingCartDatapool.datapool"),
false);
// Luodaan toistotoiminto, joka käy tietovarannon läpi
dpIterator = dpFactory.open(datapool,"org.eclipse.hyades.datapool.iterator.DatapoolIteratorSequentialPrivate");
// Alustetaan tietovaranto, joka käy ensimmäisen vastaavuusluokan läpi.
dpIterator.dpInitialize(datapool,0);
}
Huomautuksia:
- IDatapoolFactory-latausmetodin toinen parametri ilmoittaa, onko tietovarannon ilmentymä yhteiskäytössä. Jos arvo on true, tietovarannon välimuistista haetaan tietovarannon olemassa olevaa versiota. Jos arvo on false, tietovaranto on yksityinen ilmentymä. Yhteiskäytössä olevan tietovarannon ilmentymän muokkaus saattaa vaikuttaa muihin käyttäjiin, joten tätä vaihtoehtoa suositellaan käytettäväksi vain rajoitetuissa ympäristöissä.
- Jos haluat muokata tietovarantoa ohjelmallisesti, tuo org.eclipse.hyades.edit.datapool-kohde.
- IDatapoolFactory-avausmetodin toinen parametri esittää toistotoiminnon lajia. Yhteiskäytössä olevissa tietovarannoissa tulee käyttää arvoa DatapoolIteratorSequentialPrivate.
- Muokkaa testShoppingCartConstructor-metodia, niin että se käyttää shoppingCartDatapool-kohdetta.
public void testShoppingCartConstructor()
throws Exception
{
MyShoppingCart cart = new MyShoppingCart();
// Käydään tietovaranto läpi...
// Testataan alustaako konstruktori jokaisen kukkatietueen oikein, kun (!dpIterator.dpDone())
{
String Description = dpIterator.dpCurrent().getCell("Description").getStringValue();
double datapoolPrice = dpIterator.dpCurrent().getCell("Price").getDoubleValue();
// Testataan, onko kukka sovelluksessa
Double applicationPrice;
assertNotNull(applicationPrice = (Double)cart.myFlowers.get(Description));
// Testataan, että sovelluksen hinta vastaa tietovarannossa olevaa hintaa
assertTrue(applicationPrice.doubleValue() == datapoolPrice);
dpIterator.dpNext();
}
}
- Tallenna shoppingCartTest_src.java. Valitse Tiedosto-valikosta Tiedosto > Tallenna.
- Lisää tietovaranto testArtifact-kohteeseen.
- Avaa Testi-perspektiivi. Kaksoisnapsauta testin siirtymistoiminnossa testDeployment-kohdetta, niin se avautuu muokkausohjelmassa.
- Valitse Parit-välilehdessä testAsset ja valitse sitten Avaa....
- Valitse Testiresurssit-välilehdessä Lisää.... Valitse tietovaranto ja valitse OK. Tallenna resurssi.
- Aja testi käyttämällä mukautettua käyttöönottoa.
- Avaa Testi-perspektiivi. Napsauta testin siirtymistoiminnossa shoppingCartTest_src-testipakettia hiiren kakkospainikkeella ja valitse Aja muodossa > Aja.... Ajon määritysikkuna avautuu.
- Valitse ajon määritysikkunan vasemmassa ruudussa shoppingCartTest_src-testipakkaus.
- Valitse ajon määritysikkunan oikeassa ruudussa käyttöönotto, joka on luotu Alkutoimet-osassa.
- Poista Testilokit-välilehdessä Käytä oletusarvoja -valintaruudun valinta ja valitse sijainniksi datapoolExample-projektikansio.
- Aloita testi valitsemalla Aja.
- Kaksoisnapsauta testin siirtymistoiminnossa näkyvää shoppingCartTest_src-testilokia. ShoppingCartTest_src-testiloki tulee näkyviin. Voit tarkastella testin tulostietoja valitsemalla Tapahtumat-välilehden.