Date post: | 06-Jul-2015 |
Category: |
Technology |
Upload: | vit-kotacka |
View: | 413 times |
Download: | 2 times |
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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