Enterprise Testing using Arquillian

Introduction

Arquillian is a revolutionary testing platform for Java and the JVM that enables developers to easily write and execute integration and functional tests for Java middleware, ranging from Java EE and beyond.


Arquillian Reference Guide

Filosofy

The extensible platform

How it works?

Arquillian "Hello, World!" Test

@RunWith(Arquillian.class)
public class GreeterTest {

    @Deployment
    public static JavaArchive createDeployment() {
        return ShrinkWrap.create(JavaArchive.class, "test.jar")
            .addClass(Greeter.class)
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
    }

    @Inject
    Greeter greeter;

    @Test
    public void should_create_greeting() {
        Assert.assertEquals(
            "Hello, Earthling!", greeter.createGreeting("Earthling"));
    }
}

Run As... > JUnit Test

1 select a container
2 start container
3 package test archive
4 run test in container
5 test result
6 disconnect container

Container modes

Simple crud

Cool but how can i interact with the database?

Arquillian Persistence

Are you kidding, dependent tests?

Rest Testing

Cool…​can I call a Rest endpoint from the test?

Arquillian Cucumber - Cukes in Space

That one was nice but how about BDD?

Arquillian Functional

Great! do you know Selenium?

Acceptance tests

Well done, anything about user acceptance testing?

Acceptance tests pt2

Just a note about scenario initialization

Continuous integration

Can we organize that in a Deployment Pipeline?

Questions?

References

Thanks!