Testing the Enterprise layers, with Arquillian
-
Upload
virtual-jboss-user-group -
Category
Software
-
view
349 -
download
0
description
Transcript of Testing the Enterprise layers, with Arquillian
![Page 1: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/1.jpg)
Greetings,Earthlings!
![Page 2: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/2.jpg)
1Tests should beportable to any supported container
![Page 3: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/3.jpg)
2Tests should beexecutable from both IDE and build tool
![Page 4: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/4.jpg)
3The platform shouldextend/integrate existing test
frameworks
![Page 5: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/5.jpg)
The basics
![Page 6: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/6.jpg)
Arquillian Coreso you can rule the code, not the bugs!
![Page 7: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/7.jpg)
Testingplatform
Middleware for your tests
![Page 8: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/8.jpg)
Modular, Extensible, Flexible
![Page 9: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/9.jpg)
Test ExtensionSPI for test runners
![Page 10: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/10.jpg)
Test RunnersJUnit · TestNG · Spock · JBehave · Cucumber · Thucydides
![Page 11: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/11.jpg)
ContainerExtensionSPI for runtime providers
![Page 12: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/12.jpg)
ContainerAdapters
WildFly · JBoss EAP · GlassFish · TomEE · Jetty · Tomcat ·WebSphere · WebLogic · Spring · Weld · OSGi · Android · iOS
![Page 13: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/13.jpg)
Container TestExtension
Binds the two ⇒ In container testing
![Page 14: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/14.jpg)
The basic Test Class
![Page 15: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/15.jpg)
public class MyTestClass {
private MyBean bean = new MyBeanStub();
@Test public void shouldBeAbleTo() { Assert.assertNotNull(bean); }}
![Page 16: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/16.jpg)
@RunWith(Arquillian.class)public class MyTestClass {
@Deployment public static Archive<?> createDeployment() { return ShrinkWrap.create(WebArchive.class) .addXYZ(...); }
@Inject private MyBean bean;
@Test public void shouldBeAbleTo() { Assert.assertNotNull(bean); }}
![Page 17: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/17.jpg)
Demo
![Page 18: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/18.jpg)
How does this all work?
![Page 19: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/19.jpg)
SetupMaven, Gradle, Ant(+Ivy)
![Page 20: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/20.jpg)
<dependencyManagement> <dependency> <groupId>org.jboss.arquillian</groupId> <artifactId>arquillian-bom</artifactId> <version>1.1.5.Final</version> <scope>import</scope> <type>pom</type> </dependency></dependencyManagement>
<dependency> <groupId>org.jboss.arquillian.junit</groupId> <artifactId>arquillian-junit-container</artifactId> <scope>test</scope></dependency>
![Page 21: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/21.jpg)
@RunWith(Arquillian.class)public class MyTestClass {
@Deployment public static Archive<?> createDeployment() { return ShrinkWrap.create(WebArchive.class) .addXYZ(...); }
@Inject private MyBean bean;
@Test public void shouldBeAbleTo() { Assert.assertNotNull(bean); }}
![Page 22: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/22.jpg)
![Page 23: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/23.jpg)
<profile> <id>arq-jbossas-remote-7</id> <dependencies> <dependency> <groupId>org.jboss.as</groupId> <artifactId>jboss-as-arquillian-container-remote</artifactId> <version>${version.jbossas}</version> </dependency> </dependencies></profile>
![Page 24: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/24.jpg)
![Page 25: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/25.jpg)
![Page 26: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/26.jpg)
ShrinkWrapDeployment + Resolver + Descriptors
![Page 27: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/27.jpg)
ShrinkWrap.create(JavaArchive.class) .addClasses(x) .addPackages(x.z)
ShrinkWrap.create(WebArchive.class) .addAsLibraries(x) .addAsWebInfResource(x) .setWebXML(z)
ShrinkWrap.create(EnterpriseArchive.class) .addAsModules(war, jar) .setApplicationXML(x)
![Page 28: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/28.jpg)
Maven.resolver() .loadPomFromFile("pom.xml") .resolve("x:v", "x:y:1.0") .withTransitivity() .asFile();
![Page 29: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/29.jpg)
Descriptors.create(WebAppDescriptor.class) .metadataComplete(true) .version("2.5") .createServlet() .servletName(EchoServlet.class.getSimpleName()) .servletClass(EchoServlet.class.getName()).up() .createServletMapping() .servletName(EchoServlet.class.getSimpleName()) .urlPattern(EchoServlet.URL_PATTERN).up() .exportAsString()
![Page 30: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/30.jpg)
![Page 31: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/31.jpg)
![Page 32: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/32.jpg)
![Page 33: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/33.jpg)
![Page 34: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/34.jpg)
Run modes
![Page 35: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/35.jpg)
![Page 36: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/36.jpg)
![Page 37: Testing the Enterprise layers, with Arquillian](https://reader034.fdocuments.net/reader034/viewer/2022042607/558784fcd8b42aa47d8b46c8/html5/thumbnails/37.jpg)