Reducing Java Enterprise Testing to Child’s Play


Think again

You can’t fix what you can’t run

You can’t fix what you can’t debug

You can’t fix what you can’t test

You can’t develop if you can’t test

Testing is development

The purpose of automated testing is to enable change.

Verifying correctness is just a nice side-effect.

Jeremy Norris

Not testing is painful & time consuming

Testing eliminates this pain and sacrifice

Testing rulez!

Testing lens recap

Develop by testing

Don’t waste time being stuck

Our philosophy


Tests should be portable across compatible environments


Tests should be executable from the IDE and the build tool


The test platform should reuse existing frameworks and tools

Bring your tests to the runtime…
invasion you rule your code, not the bugs!

arquillian - the enterprise test platform


Designed for humans

IDE friendly ☺

Can be fully automated

Continuous integration, FTW! ∞

Provides a component model for testing

Dependency injection, yeah! ⤞

Isolates the code under test

Tame that classpath ⋔

test continuum


this is the secret to making Java enterprise testing child’s play

Arquillian "Hello, World!" Test

public class GreeterTest {

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

    Greeter greeter;

    public void should_create_greeting() {
            "Hello, Earthling!", greeter.createGreeting("Earthling"));

Run As... > JUnit Test