This presentation unveils the missing link in enterprise Java development: simple, portable integration tests. It introduces a solution in the first half of the session and demonstrates it in the second.
Unit tests and mocks get you only so far. Eventually you need to verify that your components operate and interact correctly in their intended environment—you need integration tests. Yet writing integration tests has meant taking on the barrier of bootstrapping the necessary infrastructure.
Arquillian, a container-oriented testing framework built on TestNG and JUnit, tears down this barrier. It enables you to write portable tests that invoke real components using real enterprise services in a real runtime. In other words, you can write real tests.
Rapid application development techniques, favoring rapid prototyping over intensive planning, have become popular in the last few years. Although the "old-school" Java Web frameworks (such as Struts and JSF) are well suited for enterprise projects, their development cycle is often too slow and complicated for prototyping. Due to their nature, dynamic languages such as Ruby, Python, and Groovy are natural for fast prototyping and scaffolding. But is there a way to benefit the Java ecosystem without compromising simplicity and productivity? This presentation tries to answer this question by comparing, head-to-head, three leading Java RAD tools—SeamForge, Play, and Roo—by writing a full-blown Web application in each of them, comparing the pros and cons along the way.
2nd–6th October 2011