lunes, 29 de julio de 2013

Algunos comando de Maven


  • Crear un proyecto:  
mvn archetype:create -DgroupId=org.yaxche.blog.ejemplos -DartifactId=blog.ejemplos.maven.comandosutiles.web -DarchetypeArtifactId=maven-archetype-webapp
  • Compilar proyecto sin test: 
mvn -Dmaven.test.skip=true install
  • Cambiar versión: 
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
  • Empaquetar un proyecto: 
mvn package


 

viernes, 26 de julio de 2013

Algunos conceptos de pruebas unitarias

Primero vamos a definir algunos conceptos:
  • Objeto mock, stubs : es un objeto falso que simula el comportamiento de un objeto verdadero,o de un objeto que aún no ha sido creado, pero necesitamos saber como actuaría.
  • Tipos de test : hay dos formas de relizar los test por estado y por interacción de objetos:
    • Estados.
    • Interacción de objetos. 
Vamos las diferencias entre mock y stubs:
  • Stubs : cuando queremos realizar pruebas por estado se recomienda los stubs, el assert no se ejecuta sobre un objeto stub, puede haber más de uno en un test y no hace que fallen los mismos, estos objetos tambíen hacen que el componente devuelva lo que se necesite cuando ejecutamos la acción.
  • Mock : es como un stub pero en vez de devolver el valor que necesitemos, lo que hace es verificar que se ha llamado al componenete que estamos testeando,  se suelen utilizar en las pruebas por interacciones, no es posible hacer mocks de singleton, los assert se ejecutan sobre los mock y si pueden hacer fallar un test.
Veamos uno ejemplo de cada tipo para comprender mejor los conceptos:

public void testStub(){
ServicioPintar servicioPintar= new ServicioPintar();
Coche coche = stub(Coche.class);

when(servicioPintar.pintarCoche()).theReturn("Coche pintado");

assert servicio.pintarCoche().equals():"el coche no se ha pintado";
}

public void testMock(){
ServicioPintar servicioPintar= new ServicioPintar();
Coche coche = mock(Coche.class); 

servicioPintar.pintarCoche());

verify(servicio.pintarCoche());
}
     
     


jueves, 20 de junio de 2013

Problemas de arranque con eclipse

Si alguna vez cerrais mal el eclipse y luego no podeís abrirlo, probad esta solución :
En la carpeta workspace\.metadata\.plugins\org.eclipse.core.resources y borramos el borrar el archivo .snap

martes, 18 de junio de 2013

Borrar usuario de SVN

He tenido que borrarme el usuario con el cual accedía al SVN, para ello me he tenido que ir a la carpeta eclipse -> configuration -> or.eclipse.core.runtime , alli hay un archivo culto .keyring, lo borramos, cerramos el eclipse y cuando vayamos a conectarnos al SVN nos pedirá usuario y contraseña.

martes, 4 de junio de 2013

Git

Git es una sistema de control de versiones distribuido. Su forma de almacenar la información es de forma muy diferente a CVS, Subversion ..,pero su interfaz tiene una formar muy parecida.


Cada vez que se va a guardar, git hace una foto del aspecto de todos los archivos en ese momento, y guarda una referencia a esa instantánea, aquellos archivos que no han sido modificados, se guarda un enlace de la ultima copia que se tiene de ese archivo.
Otra ventaja es que casi todas sus operaciones son en local , lo que hace las operaciones más rápida, al no depender de ningun otro ordenador en la red.

Continuara......

martes, 28 de mayo de 2013

Direct Web Remoting (DWR)

Es una librería Javascript que permite el uso de Ajax  de forma mucho más simple, y sí vamos a usar Java para nuestra aplicación DWR es la mejor opción que podemos usar , otras de las ventajas de esta librería es que no necesitamos implementar servlets sino solo necesitamos clases Java POJO ya que DWR esta basado en servlets internamente.

sábado, 25 de mayo de 2013

ManagedBean

Una clase java asociada a un formulario Jsf se les denomina ManagedBean, tenemos dos formas de declarar una clase como ManagedBean:
  • En el fichero face-config.xml:
  • @ManagedBean: 
                                       import javax.faces.bean.ManagedBean
                                       import javax.faces.bean.SessionScoped
                                      @ManagedBean
                                      @SessionScoped
                                       public class NombreBean {
                                      String mensaje="Hola";
                                     
                                          public String getMensaje() {
                                            return mensaje;
                                         }

                                         public void setMensaje(String mensaje) {
                                            this.mensaje = mensaje;
                                         }
                                       }
         Si no añadimos a la anotación (name="nombre") se utilizará por defecto el nombre de la clase en      minúscula y para usarlo en la clase jsf se utiliza la siguiente sintaxis  #{nombreBean.mensaje}