Está en la página 1de 5

JSFUnit

JSFUnit es un framework para probar aplicaciones JSF. Est diseado para pruebas de integracin completa y pruebas unitarias utilizando una API simplificada (http://docs.jboss.org/jsfunit/apidocs/index.html). Las pruebas JSFUnit se ejecutan dentro del contenedor, lo cual provee al desarrollador completo acceso a los managed beans, el FacesContext, EL Expressions, y al rbol de componentes internos JSF. Al mismo tiempo, tambin da acceso para analizar la salida HTML de cada solicitud del cliente. El patrn de uso habitual de JSFUnit es programticamente enviar una peticin http y examinar tanto la salida HTML como la parte interna de JSF.

Pruebas a validar:
Managed Beans Navegacin Arbol de componentes Cul es el estado del managed bean?. Usted puede probar cualquier cosa alcanzable a travs del Lenguage de Expresiones (EL) La solicitud me lleva a la esperada vista JSF? El rbol de componentes JSF contienen los componentes correctos? Estos componentes tienen el estado de espera? Datos invlidos generan el adecuado FacesMessage y mensaje de error al usuario? La aplicacin funciona como se espera? Porque se tiene acceso al FacesContext, se puede invocar FacesContext.getApplication (). A partir de esto puede asegurarse que la configuracin de su aplicacin es la correcta. Esto incluye pruebas para la apropiada instalacin de conversores, validadores, tipos de componenetes, locales y paquetes de recursos (resource bundles). La solicitud hace lo que debe? Mi configuracin de seguridad funcione correctamente? "" Qu pasa con el cdigo HTML envado al cliente?

Dato invalido Configuracion de la aplicacin

Cualquier otra cosa

Introduccin
En primer lugar: Establezca a sus componentes un ID. Ejemplo:
<h:inputText value="#{foo.text}" id="input_foo_text"/>

Para todo componente JSF sobre una pagina, se tiene la opcin de proveer un ID al componenete. Si usted no sumunistra el ID, JSF crear uno por usted. Sin embrago si usted permite a JSF crear el ID, se tendran dificultades para refrenciar al componentes en la pruebas.

Configure su web.xml
<filter> <filter-name>JSFUnitFilter</filter-name> <filter-class>org.jboss.jsfunit.framework.JSFUnitFilter</filter-class> </filter> <filter-mapping> <filter-name>JSFUnitFilter</filter-name> <servlet-name>ServletTestRunner</servlet-name> </filter-mapping> <filter-mapping> <filter-name>JSFUnitFilter</filter-name> <servlet-name>ServletRedirector</servlet-name> </filter-mapping> <servlet> <servlet-name>ServletRedirector</servlet-name> <servlet-class> org.jboss.jsfunit.framework.JSFUnitServletRedirector </servlet-class> </servlet> <servlet> <servlet-name>ServletTestRunner</servlet-name> <servlet-class> org.apache.cactus.server.runner.ServletTestRunner </servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletRedirector</servlet-name> <url-pattern>/ServletRedirector</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ServletTestRunner</servlet-name> <url-pattern>/ServletTestRunner</url-pattern> </servlet-mapping>

Librerias necesarias en su WEB-INF/lib


En primer lugar necesitar los jars de JSFUnit. Como JSFUnit utiliza JUnit, Cactus, HtmlUnit y HttpUnit para gran parte de su infraestructura, usted necesitar por lo menos los jars mnimos para estos framework tambien. Algunos de los siguientes jars no sern necesarios si su contenedor aplicacin proveen ellos: jboss-jsfunit-core-X.X.X.Final.jar jboss-jsfunit-richfaces-1.3.0.Final.jar JSFUnit Core jar RichFaces/Ajax4jsf Client jar for JSFUnit JSFUnit Static Analysis Tools JSFUnit Ant Task jar

jboss-jsfunit-analysis-1.3.0.Final.jar boss-jsfunit-ant-1.3.0.Final.jar jboss-jsfunit-core-1.3.0.Final.jar

aspectjrt-1.2.1.jar cactus-13-1.7.1.jar junit-3.8.1.jar nekohtml-1.9.14.jar htmlunit-2.8.jar htmlunit-core-js-2.8.jar cssparser-0.9.5.jar httpcore-4.0.1.jar httpclient-4.0.1.jar httpmime-4.0.1.jar apache-mime4j-0.6.jar commons-io-1.4.jar.jar sac-1.3.jar commons-lang-2.4.jar commons-codec-1.4.jar commons-logging-1.1.1.jar commons-collections-3.2.1.jar commons-httpclient-2.0.2.jar cactus-ant-13-1.7.1.jar cargo-0.5.jar ant-1.5.4.jar

xercesImpl-2.8.1.jar xalan-2.7.0.jar Incluya cactus-report.xsl Este es usualmente ubicado en la raiz de su war. Si usted est depslegando la aplicacin a un contenedor Servlet 3.0 no necesita hacer esto. cactusreport.xsl estar disponible en /jsfunit/cactus-report.xsl. Cree su Prueba JUnit utilzando la API JSFUnit.
public class JSFUnitTest extends org.apache.cactus.ServletTestCase { public static Test suite() { return new TestSuite( JSFUnitTest.class ); } public void testInitialPage() throws IOException { // Send an HTTP request for the initial page JSFSession jsfSession = new JSFSession("/index.faces"); // A JSFClientSession emulates the browser and lets you test HTML JSFClientSession client = jsfSession.getJSFClientSession(); // A JSFServerSession gives you access to JSF state JSFServerSession server = jsfSession.getJSFServerSession(); // Test navigation to initial viewID assertEquals("/index.jsp", server.getCurrentViewID());

// Assert that the prompt component is in the component tree and rendered UIComponent prompt = server.findComponent("greeting"); assertTrue(prompt.isRendered()); // Test a managed bean assertEquals("Stan", server.getManagedBeanValue("#{foo.text}")); } }

Desplegando la applicacin y ejecutando sus pruebas. Una vez desplegada la aplicacin, ingrese la siguiente URL en su navegador favorito para ejecutar las pruebas:
http://<host>:<puerto>/myjsfapp/ServletTestRunner? suite=com.foo.JSFUnitTest&xsl=cactus-report.xsl

El ServletTestRunner ejecutar sus pruebas con JUnit y desplegar el resultado en el navegador. La salida ser algo como esto:

Utilizando JSFUnit con JBoss AS 5 Para Jboss 5 se puede utilizar el JSFUnit deployer. Este permite adicionar pruebas JSFUnit sin tener que realizar ningn cambio al war. Para utilizar el JSFUnit Deployer: 1. Descargue y copie jsfunit-microdeployer.jar a <jboss home>/server/default/deployers

2. Renombre su war con el sufijo "-jsfunit". Ej.: "mywar-jsfunit.war" 3. Adicione sus clases de pruebas al war o coloque ellas en <jboss home>/server/default/jsfunitTests. 4. Reinicie su servidor y ejecute sus pruebas JSFUnit Recursos http://community.jboss.org/wiki/JSFUnitDocumentation

También podría gustarte