lunes, 16 de noviembre de 2009

Testear paginas Wicket JUnit EasyMock

bueno vamos a testear una webPage de Wicket


asumo el uso de maven, asi que si no esta, a poner las librerias a manopla =D

dependencias en el pom







<!-- .......TEST (JUNIT).............-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
</dependency>

<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>2.5.2</version>
</dependency>

<dependency>
<groupId>easymock</groupId>
<artifactId>easymockclassextension</artifactId>
<version>2.2</version>
</dependency>




codigo


//uso de import static es para no escribir los tipos
// Ejemplo "EasyMock.expect( ...."
// con import static va solo "expect(.."
//mas en http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html
import static org.easymock.EasyMock.*;

import java.util.ArrayList;

public class ArtistPageTest extends TestCase {

private WicketTester testerApplication;
private ApplicationContextMock appctx;

@Override
public void setUp() {
appctx = new ApplicationContextMock();

testerApplication = new WicketTester();
testerApplication.getApplication().addComponentInstantiationListener(
new SpringComponentInjector(testerApplication.getApplication(),
appctx));

//esto es un listado de artistas con un getAll (algo asi como un dao)
Bag<Artist> artists = createMock(Bag.class );


ArrayList<Artist> unaLista = new ArrayList<Artist>();

//esto es fluent new Algo().SetProp("bla") en vez de void los metodos son del tipo de la clase, y pongo return this
//http://code.google.com/p/base2dev/source/browse/src/trunk/base2dev/core/src/main/java/musics/model/Artist.java
unaLista.add(new Artist().setName("Pepe Argento").setDescription("pepe fue un grande"));


//seteamos con easyMock que espera cuando llama a algun metodo
expect(artists.getAll()).andReturn(mockList);
replay(artists);

// lo agregamos al manejador de instancias
getAppContext().putBean("artists", artists);

}

public WicketTester getTesterApplication() {
return testerApplication;
}

public ApplicationContextMock getAppContext() {
return appctx;
}




@Test
public void testRenderThePage() {

getTesterApplication().startPage(Artists.class);
getTesterApplication().assertRenderedPage(Artists.class);

}




todo el codigo esta en

http://code.google.com/p/base2dev/source/browse/src/trunk/#trunk/base2dev






Powered by ScribeFire.

No hay comentarios.: