JSFUnit

RECU-0247 (Recurso Ficha Técnica)

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.

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » Java
Código Título Tipo Carácter
LIBP-0344 Librerías para aplicaciones Java Libro de pautas Directriz Recomendada
Recursos
Área: Entorno » Área Gestión de la Entrega
Código Título Tipo Carácter
RECU-0681 Características de Maven3 respecto a Maven2 Referencia Recomendado