Since Arquillian provides deployment support, it is possible to deploy your entire application and perform end-to-end functional testing on the final deployed product. This makes your testing much more robust – not only are you testing how your code interacts, but you're testing how your UI is rendered, and how forms are filled out, and then submitted back to the server.
Arquillian has a few possible solutions for UI-based testing. The first that we'll review is Drone, which uses Selenium to execute test cases and run verifications. Next is Warp, which extends Drone to add assertions on both the client side and server side. Finally, we'll look at Graphene, another Drone-based extension for testing rich, AJAX powered applications. Within this chapter, we'll use two distinct projects. The first project is based on plain Selenium, then Drone, and Warp. The second project is based purely on Graphene.
The distinction between these projects will become very...