Mostrando entradas con la etiqueta java. Mostrar todas las entradas
Mostrando entradas con la etiqueta java. Mostrar todas las entradas

viernes, 20 de febrero de 2009

lunes, 1 de diciembre de 2008

Selenium web application testing

Es un pluging de Firefox para automatizar pruebas de web evitando el tipico proceso de abrir web, click en enlace, introducir valor en formulario, comprobar resultado .... es decir una herramienta que evita que el desarrollador se deprima!

web: http://selenium.seleniumhq.org/

Jbehave- 2 parte

El objetivo es que el desarrollo se centre en el estudio de los comportamientos de un programa (BDD) en vez de sus salidas (TDD)

En un test de comportamientos existen como minimo 3 archivos:

  • un fichero de texto con una forma estandarizada con la descricpción del comportamiento
  • una clase java que hereda de Scenario y que cumple el rol de describir el escenario
  • una clase java que herada de Steps y que cumple el rol de describir los pasos del comportamiento


Con JBehave primero tenemos que escribir (y guardar) un fichero de texto con la descripcion del comportamiento esperado (Give, When, Then ). El nombre del fichero tiene que coincidir con el nombre de la clase que cumple el rol de Scenario. En el constructor del scenario se le pasa el objeto de tipo Steps (que su clase padre es de tipo Steps) en el que se implementan los metodos que se corresponden con la descripción del comportamiento. Se utiliza anotaciones para identificar dichos metodos con el paso correspondiente del comportamiento especificado en el fichero de texto


repositorio con ejemplo de logging muy simplificado:
http://code.google.com/p/ceacea/source/browse/trunk/jbehave/src/logging?spec=svn26&r=26

librerias necesarias:
  • junit-4.4.jar
  • jbehave-core-2.2-SNAPSHOT.jar





http://www.ibm.com/developerworks/java/library/j-cq09187/index.html?ca=dgr-lnxw9djbehavetdd&S_TACT=105AGX59&S_CMP=GR

el comportamiento se puede entender como un condicional: If, And, Then en vez de Give, When, Then para que resulte más familiar al desarrollador

viernes, 4 de abril de 2008

Tipos de asociación: Composición - Agregación - Dependencia

Tipos de asociación:
La composición está relacionada con el valor del objeto, es decir el objeto que lo contiene se encarga de su ciclo de vida (inicialización, mantenimiento y limpieza)
La agregación está relacionada con la referencia a un objeto:

jueves, 27 de marzo de 2008

Programación pesimista, programación orientada a excepciones (anomalías)

Una excepción en java es simplemente una clase que hereda de la clase java.lang.Exception que extiende a su vez de la clase java.lang.Throwable así que empezamos echando un vistazo a el API de Throwable: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html
Como se comenta en la descripción de la clase:
Only objects that are instances of this class (or one of its subclasses) are thrown by the Java Virtual Machine or can be thrown by the Java throw statement.
Se puede apreciar que las clases que herendan de Throwable son Error y Exception. Mientras que si lanzamos un error no hay que declarlo en la definición del método, si lanzamos una exception si hay que declarlo:





Aunque no estamos obligados a declarar el error en la definición del método lo podríamos haber hecho de las siguientes maneras:
  • public void pruebaLanzaError() throws Error
  • public void pruebaLanzaError() throws Throwable
Pero en este caso si invocamos el método desde otra parte de nuestro código si estamos obligados a hacernos cargo de este error:



Si entendemos la excepción como un comportamiento anómalo de nuestro programa (o parte de programa), podemos tener en cuenta todos las anomalías de nuestro programa como pueden ser: objetos nulos, valores negativos ...
y actuando en consecuencia es decir lanzando excepciones concretas respondiendo a comportamientos anomalos concretos.

miércoles, 16 de enero de 2008

Obtener un string con el mensaje (stacktrace) de una excepción

Exception ex = new Exception("something went wrong");
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
String stacktrace = sw.toString();
System.out.println("stacktrace = " + stacktrace);

Conseguido en
http://www.jguru.com/faq/view.jsp?EID=571084

miércoles, 24 de octubre de 2007

enum con propiedades, para controlar los mensajes al usuario

http://java.sun.com/docs/books/tutorial/java/javaOO/enum.html

public enum ReflectionMensaje {
ILEGAL_ACCESO("ilegal acceso al metodo: "),
METODO_INEXISTENTE("No existe el metodo: "),
EXCEPCION_INVOCACION("excepcion de invocacion en el metodo: ");

private final String mensaje; // in kilograms

ReflectionMensaje(String m) {
this.mensaje = m;
}

public String toString() {
return mensaje; //To change body of overridden methods use File | Settings | File Templates.
}
}

viernes, 31 de agosto de 2007

articulos interesantes para programar en java con herramientas actuales

http://shrubbery.mynetgear.net/

miércoles, 22 de agosto de 2007

Obtener el contenido de una entrada de blogger

TextContent tc = (TextContent)entry.getContent();
HtmlTextConstruct ptc = (HtmlTextConstruct)tc.getContent();
System.out.println(ptc.getHtml());

lunes, 18 de junio de 2007

UnifiedExpressionLanguage operador &&

El operador "&&" se cambia a "and"

http://java.sun.com/javaee/5/docs/tutorial/doc/JSPIntro7.html


not empty
empty

la expresión quedaría de la siguiente forma: #{empty cart.cart}

Convertir byte[] a archivo

File file = new File(name);
file.createNewFile();
FileInputStream fileInputStream = new FileInputStream(name);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fileData);
OutputStream outputStream = new FileOutputStream(
name);
int data;
while ((data = byteArrayInputStream.read()) != -1) {
outputStream.write(data);
}

fileInputStream.close();
outputStream.close();

miércoles, 23 de mayo de 2007

af:validateDateTimeRange problem

El error del del validador de date TimeRange se debe a que debemos resetear el Time del Calendar correspondiente, más o menos así:


public void resetTime(Calendar f ){

f.set(Calendar.HOUR_OF_DAY, 0);
f.set(Calendar.MINUTE, 0);
f.set(Calendar.SECOND, 0);
f.set(Calendar.MILLISECOND, 0);


}


<af:validateDateTimeRange maximum="#{convCursosListado.seleccionClaseActual.finFiltro.time}"

minimum="#{convCursosListado.seleccionClaseActual.inicioLimite.time}"/>

lunes, 14 de mayo de 2007

decimales en java

public static float roundNum(float num) throws Exception
{
float valor = 0;

valor = num;

valor = valor*100;
valor = java.lang.Math.round(valor);
valor = valor/100;

return valor;

}

si quieres que se trunque a 1 decimal multiplicas por 10 y divides para 10
si quieres que se trunque a 2 decimales multiplicas por 100 y divides para 100
y asi según el número de decimales que necesites.

el método round(valor) de la clase java.lang.Math también puede recibir valores doubles en su argumento

jueves, 3 de mayo de 2007

instalar jdk linux

http://javabasico.osmosislatina.com/java_linux.htm

sábado, 28 de abril de 2007

Convert Date to Calendar

Calendar calendar = Calendar.getInstance();
calendar.setTime(i.getFechaInicio());

viernes, 27 de abril de 2007

invertir java.util.List

List invertir=new ArrayList();
for(int index=lista.size()-1; index>=0; index--)
invertir.add(parents.get(index));
return invertir;

jueves, 26 de abril de 2007

miércoles, 25 de abril de 2007

Problemas con el character set en java

Actualizar driver y que no haya duplicados de librería
actualmente estoy usando mysql-connector-java-5.0.5-bin.jar

martes, 24 de abril de 2007

Ejecutar archivos jar desde la linea de comandos

java -cp . -jar archivo.jar