A JSFUnit Test Class is an ordinary JUnit class. However, if you are using Cactus instead of Arquillian, it does need to extend org.apache.cactus.ServletTestCase which extends junit.framework.TestCase. Also, you are limited to using JUnit 3. If you need JUnit 4 then you must use Arquillian.
Here is a simple example:
import java.io.IOException; import org.jboss.jsfunit.jsfsession.JSFClientSession; import org.jboss.jsfunit.jsfsession.JSFServerSession; import org.jboss.jsfunit.jsfsession.JSFSession; public class MyJSFUnitTest extends ServletTestCase { private JSFClientSession client; private JSFServerSession server; // JUnit suite() method public static Test suite() { return new TestSuite( MyJSFUnitTest.class ); } // optional JUnit setUp() method public void setUp() throws IOException { // Initial JSF request JSFSession jsfSession = new JSFSession("/hello.jsf"); this.client = jsfSession.getJSFClientSession(); this.server = jsfSession.getJSFServerSession(); } // one or more JUnit test methods public void testHelloWorld() throws IOException { client.setValue("name", "Stan"); client.click("mySubmitButton"); assertEquals("Stan", server.getManagedBeanValue("#{myBean.name}")); assertTrue(client.getPageAsText().contains("Hello, Stan")); } }
Comments