+ All Categories
Home > Technology > Použití JUnit a Mock frameworků pro testování Java EE architektury

Použití JUnit a Mock frameworků pro testování Java EE architektury

Date post: 06-Jul-2015
Category:
Upload: vit-kotacka
View: 413 times
Download: 2 times
Share this document with a friend
Description:
Použití JUnit a Mock frameworků pro testování Java EE architektury - obhajoba bakalářské práce
32
Pouz ˇitı ´ JUnit a Mock frameworku ˚ pro testova ´nı ´ Java EE architektury pr ˇedobhajoba bakala ´r ˇske ´ pra ´ce autor: Vı ´t Kotac ˇka, ved.: RNDr. Jaroslav Procha ´ zka, Ph.D. Ostravska ´ univerzita 7. 6. 2008 autor: Vı ´t Kotac ˇka, ved.: RNDr. Jaroslav Procha Pouz ˇitı ´ JUnit a Mock frameworku ˚ pro testova 7. 6. 2008 1 / 32
Transcript
Page 1: Použití JUnit a Mock frameworků pro testování Java EE architektury

Pouzitı JUnit a Mock frameworkupro testovanı Java EE architektury

predobhajoba bakalarske prace

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D.

Ostravska univerzita

7. 6. 2008

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 1 / 32

Page 2: Použití JUnit a Mock frameworků pro testování Java EE architektury

Obsah

1 Testovanı softwaru, typy testu

1 Zpusoby testovanı Java EE architektury

1 JUnit testovanı

1 Mock testovanı

1 Porovnanı JUnit a Mock testovanı

1 Testovanı Java EE architektury

1 Nastroje

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 2 / 32

Page 3: Použití JUnit a Mock frameworků pro testování Java EE architektury

Testovanı softwaru, typy testu

Testovanı softwaruproces pro zajistenı kvality softwaruzpusob, jak v systemu odhalit chyby

Typy testujednotkove testyintegracnı testysystemove testy

end-to-end testyvykonnostnı testyzatezove testybezpecnostnı testytesty pouzitelnosti

akceptacnı testy

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 3 / 32

Page 4: Použití JUnit a Mock frameworků pro testování Java EE architektury

Jednotkove testovanı

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 4 / 32

Page 5: Použití JUnit a Mock frameworků pro testování Java EE architektury

Integracnı testovanı

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 5 / 32

Page 6: Použití JUnit a Mock frameworků pro testování Java EE architektury

Systemove testovanı

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 6 / 32

Page 7: Použití JUnit a Mock frameworků pro testování Java EE architektury

Problem pri testovanı Java EE architektury

ProblemZavislost kodu aplikace na objektech kontejneru neboaplikacnıho serveru (Web, EJB, JNDI).

Zavislost servletu na objektech kontejnerupublic class MyServlet extends HttpServlet {

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {

...}

}

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 7 / 32

Page 8: Použití JUnit a Mock frameworků pro testování Java EE architektury

Zpusoby testovanı Java EE architektury

testovanı v izolaci (JUnit, Mock Objects)testovanı uvnitr kontejneru (Cactus)testovanı vne kontejneru (ServletUnit)

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 8 / 32

Page 9: Použití JUnit a Mock frameworků pro testování Java EE architektury

JUnit testovanı

Princip JUnitizolovanı testovane komponenty (trıdy)overenı pomocı tvrzenı (assertion)

TDD – Test Driven DevelopmentPrincip test first

1 Pridanı testu2 Spustenı testu (novy test neprojde)3 Implementace produktivnıho kodu4 Spustenı testu (novy test projde)5 Refaktorovanı kodu

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 9 / 32

Page 10: Použití JUnit a Mock frameworků pro testování Java EE architektury

JUnit 3.8

public class MyTest extends TestCase {

protected void setUp() {...

}

protected void tearDown() {...

}

public void testDoSomething() {...

}}

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 10 / 32

Page 11: Použití JUnit a Mock frameworků pro testování Java EE architektury

JUnit 4.x@RunWith(JMock.class)public class MyTest {

@Beforepublic void initialize() {}

@Afterpublic void cleanAllMess() {}

@Testpublic void doSomething() {

...}

}autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 11 / 32

Page 12: Použití JUnit a Mock frameworků pro testování Java EE architektury

Zavislost objektu

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 12 / 32

Page 13: Použití JUnit a Mock frameworků pro testování Java EE architektury

Mock testovanı

Double objektystub: natvrdo napsany kod, prazdna implementace,vracı defaultnı hodnoty (0, false, null)fake: „zkratkovita“, zjednodusena implementacemock: implementuje rozhranı nahrazovaneho objektu,definuje chovanı objektu

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 13 / 32

Page 14: Použití JUnit a Mock frameworků pro testování Java EE architektury

Pouzitı Mock objektu (jMock)

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 14 / 32

Page 15: Použití JUnit a Mock frameworků pro testování Java EE architektury

Porovnanı JUnit a Mock testovanıTest Driven Development (TDD)

verifikace stavu (hodnoty)pouzıvanı realnych objektuvyvoj smerem middle-outkomplexnı znovupouzitelne prıpravkyvytvarenı metod vracejıcıch hodnotu

Behavior Driven Development (BDD)verifikace chovanıpouzıvanı Mock objektuvyvoj smerem outside-innepouzıvanı prıpravkuvytvarenı metod pracujıcıch nad objekty

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 15 / 32

Page 16: Použití JUnit a Mock frameworků pro testování Java EE architektury

Rızene objekty

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 16 / 32

Page 17: Použití JUnit a Mock frameworků pro testování Java EE architektury

Simulace zivotnıho cyklu EJB

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 17 / 32

Page 18: Použití JUnit a Mock frameworků pro testování Java EE architektury

Navrhovy vzor Remote Facade

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 18 / 32

Page 19: Použití JUnit a Mock frameworků pro testování Java EE architektury

Java Naming and Directory Interface

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 19 / 32

Page 20: Použití JUnit a Mock frameworků pro testování Java EE architektury

Nahrazenı JNDI stromu

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 20 / 32

Page 21: Použití JUnit a Mock frameworků pro testování Java EE architektury

Prekrytı kodu zavisleho na JNDI I.

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 21 / 32

Page 22: Použití JUnit a Mock frameworků pro testování Java EE architektury

Prekrytı kodu zavisleho na JNDI II.

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 22 / 32

Page 23: Použití JUnit a Mock frameworků pro testování Java EE architektury

Servlet – zpracovanı pozadavku I.

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 23 / 32

Page 24: Použití JUnit a Mock frameworků pro testování Java EE architektury

Servlet – zpracovanı pozadavku II.

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 24 / 32

Page 25: Použití JUnit a Mock frameworků pro testování Java EE architektury

Navrhovy vzor Front Controller

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 25 / 32

Page 26: Použití JUnit a Mock frameworků pro testování Java EE architektury

Nastroje

Buildovacı a testovacı nastrojeIDE: Eclipse, NetBeans, IntelliJ IDEA, JBuilderTestovacı framework: JUnit, TestNG, jMock, EasyMockBuildovacı nastroje: Ant, Maven

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 26 / 32

Page 27: Použití JUnit a Mock frameworků pro testování Java EE architektury

Eclipse

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 27 / 32

Page 28: Použití JUnit a Mock frameworků pro testování Java EE architektury

JUnit (Eclipse)

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 28 / 32

Page 29: Použití JUnit a Mock frameworků pro testování Java EE architektury

JUnit (konzole)

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 29 / 32

Page 30: Použití JUnit a Mock frameworků pro testování Java EE architektury

Ant (Eclipse)

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 30 / 32

Page 31: Použití JUnit a Mock frameworků pro testování Java EE architektury

Ant (konzole)

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 31 / 32

Page 32: Použití JUnit a Mock frameworků pro testování Java EE architektury

ZdrojeKnihy

J. B. Rainsberger. JUnit Recipes. Manning Publications.2004. ISBN 1932394230.Lasse Koskela. Test Driven: TDD and Acceptance TDDfor Java Developers. Manning Publications. 2007. ISBN1932394850.Kent Beck. Programovanı rızene testy. GradaPublishing, a.s. 2004. ISBN 80-247-0901-5.Bill Burke, Richard Monson-Haefel. EnterpriseJavaBeans 3.0 (5th Edition). O’Reilly Media, Inc. 2006.ISBN 059600978X.Martin Fowler. Patterns of Enterprise ApplicationArchitecture. Addison-Wesley Professional. 2002. ISBN0321127420.

autor: Vıt Kotacka, ved.: RNDr. Jaroslav Prochazka, Ph.D. (OsU)Pouzitı JUnit a Mock frameworku pro testovanı Java EE architektury7. 6. 2008 32 / 32


Recommended