Domanda

Sto cercando di scrivere una serie di test di integrazione del sistema per un'applicazione client RMI. Vorrei avviare il server RMI in JUnit 3.8.2 e quindi eseguire quei test. Qualcuno l'ha fatto?

Sto usando qualcosa del genere in un pojo con main:

    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:");

    } 


Qual è il modo migliore per trasformarlo in un test junit in modo che il registro venga avviato solo una volta e i test vengano eseguiti solo se il registro si avvia effettivamente? Vorrei evitare di avere una classe di test con un metodo di test con tutto il codice di test principale, che è quello che mi sono ritrovato a fare prima di venire qui.

Inoltre, cosa devo fare attenzione quando scrivo i miei test? Qualche problema di test RMI?

È stato utile?

Soluzione

Se si utilizza JDK 5 o versione successiva, si consiglia di aggiornare a JUnit 4.4. Le annotazioni sono di grande aiuto.

Consiglio anche di leggere questo . Non vedo perché dovresti scrivere una classe principale separata per eseguire i test. Non è quello che dovrebbe fare TestRunner?

Avrei avviato il registro in un'installazione e lo avrei chiuso in un metodo di smontaggio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top