JSFUnit
- Área: Librerías y Módulos
- Grupo: Librerías para Pruebas
- Carácter del recurso: Recomendado
- Tecnologías: JavaServer Faces
Descripción
JSF Unit es un framework de pruebas para aplicaciones JSF. Esta diseñada para permitir una completa integración de pruebas y pruebas de unidad de las aplicaciones JSF utilizando un API simplificado. JSFUnit corre dentro de un contenedor, el cual provee al desarrollador completo acceso al control de los Beans, el FacesContext, expresiones El y al componente interno JSF Tree. Al mismo tiempo tiene acceso al HTML de salida enviado para cada uno de los request del cliente. Las principales características de la librería:
- Habilidad para correr casos de prueba aislados, fuera del contenedor de aplicaciones o desde los diferentes IDE’s, eclipse o netbeans.
- Habilidad para correr pruebas completas al ciclo de vida del HTTP Request-Response.
- Integración con herramientas de construcción tales como Ant y Maven
- Usa la api JSF para llamar los métodos de prueba en vez de revisar los HTML de salida o los objetos de cliente
- Pruebas de navegación validando la entrada de usuario sobre el formulario y el acceso a la vista propietaria
- Verifica que las acciones se ejecutan como se esperan y las condiciones de error se manejan como se espera
- Verifica que los archivos de configuración XML (facesconfig.xml) se carguen correctamente.
Permite realizar tres tipos diferentes de test: análisis estático de componentes JSF, análisis dentro del contenedor y análisis del ciclo de vida y del rendimiento de las páginas JSF
- Análisis estático de JSF’s: Valida los archivos de configuración JSF con el fin de identificar cualquier asunto de configuración relacionado antes de que se ejecuten.
- JSFTimer: Es un componente de prueba que permite realizar análisis de rendimiento, el cual se puede utilizar para monitorear el ciclo de vida de los JSF.
Ejemplo de uso
package com.sample;
import java.io.IOException;
import org.jboss.jsfunit.jsfsession.JSFClientSession;
import org.jboss.jsfunit.jsfsession.JSFServerSession;
import org.jboss.jsfunit.jsfsession.JSFSession;
import junit.framework.Test;
import junit.framework.TestSuite;
public class JSFUnitTest extends org.apache.cactus.ServletTestCase
{
public static Test suite()
{
return new TestSuite( JSFUnitTest.class );
}
public void testInitialPage() throws IOException
{
// Envío de una petición HTTP para la página inicial
JSFSession jsfSession = new JSFSession("/index.jsf");
// Un JSFClientSession emula el visor y le pasa el test HTML
JSFClientSession client = jsfSession.getJSFClientSession();
// Un JSFServerSession da acceso al estado de la sesión
JSFServerSession server = jsfSession.getJSFServerSession();
assertEquals("/index.jsp", server.getCurrentViewID());
assertEquals("guest", server.getManagedBeanValue("#{bean.name}"));
// Introduce los valores y clickea el login
client.setValue("form1:username", "MADEJA");
client.setValue("form1:password", "MADEJA");
client.click("login");
// Test navigation
assertEquals("/welcome.jsp", server.getCurrentViewID());
}
}
Usos y recomendaciones conocidas
- Recomendado por JBoss
Requisitos e incompatibilidades
- jboss-jsfunit-core-1.0.0.GA.jar
- aspectjrt-1.2.1.jar
- cactus-13-1.7.1.jar
- junit 3.8.1.jar
- commons-lang-2.4.jar
- commons-codec-1.3.jar
- commons-logging-1.1.1.jar
- nekohtml-1.9.9.jar
- htmlunit-2.4.jar
- htmlunit core js 2 4 jar
- commons-collections-3.2.jar
- cactus-ant-13-1.7.1.jar
- cargo-0.5.jar
- htmlunit-core-js-2.4.
- ant 1 5 4 jar
- cssparser-0.9.5.jar
- commons-httpclient-3.1.jar
- commons-io-1 4 jar jar
- ant-1.5.4.commons io 1.4.jar.
- sac-1.3.jar
Existen problemas de compatibilidad reportados entre JSFUnit y Maven3. Concretamente, los test del plugin Ant no funcionan de forma correcta en Maven3. Se espera que estos problemas sean corregidos en la próxima versión 2.0.0.Final. De momento, se recomienda que no se emplee Maven3 con JSFUnit.
Enlaces externos
Contenidos relacionados
Código | Título | Tipo | Carácter | |
---|---|---|---|---|
LIBP-0344 | Librerías para aplicaciones Java | Libro de pautas | Directriz | Recomendada |
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0681 | Características de Maven3 respecto a Maven2 | Referencia | Recomendado |