Arquillian
-
Upload
jakub-kubrynski -
Category
Technology
-
view
717 -
download
1
description
Transcript of Arquillian
ARQUILLIANJakub Kubrynski
-------------------------------------------WHOAMI
- PayU.isHeadOfSoftwareDevelopment()
- write less get more
- import java.unit.concurrent.*- import sun.misc.Unsafe
-------------------------------------------TO TEST OR NOT TO TEST
- waste of time- my code always rocks- it's too hard
- in fact we're testing easy things instead of important ones
-------------------------------------------CORE PRINCIPLES
- tests should be portable to any supported container
- tests should be executable from both IDE and build tool
- the platform should extend or integrate existing test frameworks
-------------------------------------------TESTING GAP
- unit vs integration vs functional
- totally different level of abstraction- integration is hard to test
-------------------------------------------BUILD
- Maven - BillOfMaterial
- Gradle
- Ant + Ivy
-------------------------------------------TEST FRAMEWORKS
- JUnit- TestNG
- Spock- JBehave- Cucumber
-------------------------------------------SHRINKWRAP
- artifacts assembly- archiver- JavaArchive- WebArchive- EnterpriseArchive- resolver - MavenResolver
-------------------------------------------SHRINKWRAP
- tests matrix- Tomcat + Jboss + GlassFish- Hibernate 3.x + 4.x- Spring 3.0 + 3.1 + 3.2- MySQL + PosgreSQL + Oracle- Chrome + Firefox + Opera
-------------------------------------------CONTAINERS
- embedded, managed, remote
- JavaEE: JBoss, WAS, WLS, GlassFish- servlet container: Jetty, Tomcat- standalone: OpenEJB, Weld SE
-------------------------------------------RUNNERS
- in container- inject datasource into test- inject connection factory
- at client- untestable deployment
-------------------------------------------TOOLING
- Forge- JBoss tools- JRebel- Jacoco- Byteman
-------------------------------------------WEB TESTING
- why not bare selenium?- life cycle management- multiple browsers in a single test- configuration outside of the code
-------------------------------------------WEB TESTING
- Drone 1 and 2- Graphene 1 and 2- jQuery API- wait until- elementPresent, testEquals, alertPresent, elementNotVisible
- drag & drop
-------------------------------------------EXTENSIONS
- JSF- Seam- REST- Mobile Android / iOS–- Spring Framework- Performance
-------------------------------------------PERSISTENCE
- based on DBUnit- supports YAML, JSON, XML, XLS- transactions- custom SQL scripts
-------------------------------------------WARP
- combines container and client executions in single test method
- Warp.initiate(...).inspect(...)
-------------------------------------------DRAWBACKS
- Maven hell
- one test class per @Deployment
- too much capabilities
- strange client/server behaviour
-------------------------------------------FUTURE
- client modularity- decoupled event model- polyglot (scala, clojure, jS, .NET, PHP)- mobile support (Android, iOS)
-------------------------------------------CONTEST
-------------------------------------------CONTEST
ebook
-------------------------------------------CONTEST
Surefire vs Failsafe
-------------------------------------------DEMO
- let's check if it actually works- let's check if it actually works- let's check if it actually works- let's check if it actually works- let's check if it actually works- let's check if it actually works- let's check if it actually works
-------------------------------------------MATERIALS
- www.arquillian.org- http://docs.jboss.org/author/display/ ARQ/Reference+Guide- www.github.com/arquillian- community.jboss.org/en/arquillian?view=discussions
THANKS!! :)