Bueno primero que nada, no es mi idea, solo lo traduzco y adapte a mi codigo.
Original : http://stuq.nl/weblog/2009-11-01/automatically-test-your-wicket-panel-html-markup
La idea es de testear todos los componentes Panel (se puede hacer para mas cosas) por reflection, gracias a spring.
Intente dejarlo lindo con labdaj pero no me salio =( , quedaba inentendible, Cuando tenga mas practica con eso, probamos
Con esto, si en un panel no cerramos un tag (ej <div bla </div> ) el unit test fallaria donde lo encuentre, lo mismo con los errores comunes de cambiar un wicket:id o algo asi
bueno, dependencias solo junit y spring

Original : http://stuq.nl/weblog/2009-11-01/automatically-test-your-wicket-panel-html-markup
La idea es de testear todos los componentes Panel (se puede hacer para mas cosas) por reflection, gracias a spring.
Intente dejarlo lindo con labdaj pero no me salio =( , quedaba inentendible, Cuando tenga mas practica con eso, probamos
Con esto, si en un panel no cerramos un tag (ej <div bla </div> ) el unit test fallaria donde lo encuentre, lo mismo con los errores comunes de cambiar un wicket:id o algo asi
bueno, dependencias solo junit y spring
package base2dev.web.panel;
import java.lang.reflect.Constructor;
import java.util.Set;
import org.apache.wicket.markup.html.panel.Panel;
import org.junit.Test;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
import org.springframework.core.type.filter.AssignableTypeFilter;
import base2dev.web.common.test.TestCase;
public class PanelsTest extends TestCase {
@Test
public void testAllWicketPanels() throws Exception {
//cosas de spring
ClassPathScanningCandidateComponentProvider provider =
new ClassPathScanningCandidateComponentProvider(true);
//seteo como filtro las cosas del tipo Panel
provider.addIncludeFilter(new AssignableTypeFilter(Panel.class));
//path donde buscar
Set<BeanDefinition> components = provider
.findCandidateComponents("base2dev/web/common/controls");
//esto podria ser mas lindo con labdaj
// llamamos a testear el panel, por cada componente, nada muy loco
for (BeanDefinition component : components) {
Class clazz = Class.forName(component.getBeanClassName());
if (hasDefaultConstructor(clazz)) {
testWicketPanel(clazz);
}
}
}
public void testWicketPanel(Class clazz) {
getTesterApplication().startPanel(clazz);
getTesterApplication().assertNoErrorMessage();
getTesterApplication().assertNoInfoMessage();
}
public boolean hasDefaultConstructor(Class clazz) {
for (Constructor constructor : clazz.getConstructors()) {
if (constructor.getParameterTypes().length == 1
&& constructor.getParameterTypes()[0].getSimpleName()
.equals("String")) {
return true;
}
}
return false;
}
}
-----------------------------------------------

Powered by ScribeFire.
No hay comentarios.:
Publicar un comentario