How to test JSF 2.0 apps?
One of the most crucial points when developing enterprise systems is testing, both on unit as well as on integration level.
Once the system starts to grow beyond a trivial level of complexity, it's mandatory to have such tests that can be integrated in a automated continuous integration system (Hudson or the likes).
While this topic is pretty well covered for EJB 3.1 components, support for automated testing the web part seems to be still marginal in the JEE universe (in contrast, for instance, to the Ruby on Rails or Spring MVC worlds, where testability might almost be considered as an in-built design pattern).
In particular when it comes to JSF 2.0, I'm still searching for a decent, easy-to-use and effcient way to implement automated unit and integration tests for my the Faces part of my JEE 6 applications.
There's JSFUnit (http://www.jboss.org/jsfunit) - yet, it appears to require the application already deployed in a container (correct me if I'm wrong), which introduces quite some (unneccessary?) complexity and inefficiency into the test setup and execution process.
There's also Arquillian (http://community.jboss.org/docs/DOC-14376) for which I still have to find out whether it is meant or useful for JSF tests.
What are your experiences here? How do you test your JSF 2 applications?
How is JSF 2.0 meant to be tested by its designers?