Go into any IDE and create a default Web project and you’ll often get JUnit, but I have yet to see one include some form of web testing support (e.g. Cactus, Cargo, and HttpUnit) and that’s just lame! How many Java web projects have you worked on recently that included thorough web testing in the project? I’ll bet very few! Of those that did, how easy was it to write the web test, make a change to a controller, and instantly rerun the web test all from within your IDE? Probably none! Even if you have an exploded WAR with auto-class reloading enabled in your servlet container, most containers internally restart the WAR which is slow!
Bottom line, web testing in Java is complicated and currently the domain of seasoned Java developers. Appfuse get props for including full web testing framework support but the IDE vendors really need to up their game here!
In contrast Ruby on Rails makes it so easy that I was writing web tests within hours of writing my first line of Ruby and it worked instantaneously whether running from the command line or in the Eclipse based IDE RadRails. They are setting a good example for new developers and I would like to see Java doing a better job because web testing the output users get is arguably the most important thing you can test!
At GreatSchools our QA team addresses the issue by using TestComplate but it’s a completely separate product that doesn’t get triggered by our continuous integration system. Ultimately I think it will be best if we can move to using a web testing system such as Cargo/HttpUnit that will be part of our core project that the developers are engaged with and can be run in the IDE or via CruiseControl.