On Thu, Apr 30, 2009 at 10:13 AM, Jay Balunas <tech4j@gmail.com> wrote:
You may also want to check out http://www.jboss.org/community/wiki/TestDrivenJSFDevelopment

Alex Smirnov has been working on this to help with RF 4.0 development.  Perhaps we can collaborate.

Awesome. So I'm not alone in my thinking that we need a solution.

Another initiative that is just getting started is faces-tester by Jason Lee. http://kenai.com/projects/facestester

I see two requirements. One is that you are interacting with the JSF API to validate your framework or business code. For instance, I have tests in Seam 3 right now that validate that the EL resolver is working correctly, ones that validate that FacesMessage objects are created and registered and ones that test that a component can be found by id in a programmatically created tree.

Then there is the view and UI component stuff (but not functional testing like Selenium or JSFUnit). That is where faces-tester and/or jsf-test are needed. They reach into the JSF view layer and begin executing the component renderers.

We absolutely need both. And it's time to get serious and have a definitive library rather than just spinning off a homegrown mock everytime we need to write a test. I'm going to be looking into both of these projects as I add tests to Seam 3.

-Dan



On Wed, Apr 29, 2009 at 11:10 AM, Dan Allen <dan.j.allen@gmail.com> wrote:
It's hard to believe that for as long as JSF has been around, the only decent repository of mocks for the JSF API comes not from the implementation, but rather from all but dead and irrelevant project at Apache (Shale). Of course, Seam 2 forged it's own path and has a healthy set of mocks, although still somewhat incomplete and vagrant. In the Seam 3 spirit of modularity, I would like to migrate the Seam 2 mocks into a mock module in Seam 3 that provides mock/stub object for various Java EE APIs. I plan to categorize them by spec under the org.jboss.seam.mock folder

JSF - org.jboss.seam.mock.faces
Servlet - org.jboss.seam.mock.servlet
etc

This module should not depend on any other module so that it is easy to reuse, perhaps even outside of the Seam framework. Perhaps seam-mock can end up replacing Shale test. Who knows. We'll just let it play out. Please contribute your ideas/use cases!

http://anonsvn.jboss.org/repos/seam/modules/trunk/mock/

As for the functionality, my feeling is that the mocks should be functional as long as each class behaves like a bean. That means it shouldn't parse XML documents or make similar assumptions. But they should be easy enough to extend that perhaps you can add that functionality in your test case or we can think about providing an additional subclass or helper if the need is common (perhaps parsing an web.xml document).

-Dan

--
Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action

http://mojavelinux.com
http://mojavelinux.com/seaminaction
http://in.relation.to/Bloggers/Dan

NOTE: While I make a strong effort to keep up with my email on a daily
basis, personal or other work matters can sometimes keep me away
from my email. If you contact me, but don't hear back for more than a week,
it is very likely that I am excessively backlogged or the message was
caught in the spam filters.  Please don't hesitate to resend a message if
you feel that it did not reach my attention.

_______________________________________________
seam-dev mailing list
seam-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/seam-dev




--
blog: http://in.relation.to/Bloggers/Jay



--
Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action

http://mojavelinux.com
http://mojavelinux.com/seaminaction
http://in.relation.to/Bloggers/Dan

NOTE: While I make a strong effort to keep up with my email on a daily
basis, personal or other work matters can sometimes keep me away
from my email. If you contact me, but don't hear back for more than a week,
it is very likely that I am excessively backlogged or the message was
caught in the spam filters.  Please don't hesitate to resend a message if
you feel that it did not reach my attention.