2009-01-09 10 views
5

Estoy buscando escribir un conjunto de pruebas de integración del sistema para una aplicación de cliente RMI. Me gustaría iniciar el servidor RMI en JUnit 3.8.2 y luego ejecutar esas pruebas. ¿Alguien ha hecho esto?Mejores prácticas para aplicaciones JUnit y RMI, registro RMI

estoy usando algo como esto en un POJO con la principal:

 

    import java.rmi.registry.*; 

    .... 

    //setup 
    try { 

     java.rmi.registry.LocateRegistry.createRegistry(1099); 
     System.out.println("RMI registry ready."); 

     this.StartMyServer(); 

     // client set up 

     MyClient m = null; 
     m = (MyClient) Naming.lookup("//MyHost/MyServer", m); 

     // tests here 

    } catch (MyClientException me) { 

     System.out.println("MyClient fall down go boom"); 

    } catch (MyServerException me) { 

     System.out.println("MyServer fall down go boom"); 

    } catch (Exception e) { 

     System.out.println("Exception starting RMI registry:"); 

    } 


¿Cuál es la mejor manera de convertir esto en una prueba junit por lo que el registro se inicia sólo una vez y las pruebas sólo se ejecuta si el registro en realidad se inicia? Me gustaría evitar tener una clase de prueba con un método de prueba con todo el código de prueba de main allí, que es lo que me encontré haciendo antes de venir aquí.

Además, ¿qué debo tener en cuenta al escribir mis pruebas? ¿Alguna prueba de RMI?

Respuesta

5

Si está utilizando JDK 5 o superior, le recomiendo que actualice a JUnit 4.4. Las anotaciones son de gran ayuda.

También recomendaría leer this. No veo por qué escribirías una clase principal separada para ejecutar las pruebas. ¿No es eso lo que se supone que debe hacer el TestRunner?

Comenzaría el registro en una configuración y lo cerraría en un método de desmontaje.

+0

No escribí el principal, el desarrollador anterior lo hizo. Es una "prueba de humo" manual que estoy portando a junit – sal