質問

RMIクライアントアプリケーションのシステム統合テストのセットを作成しようとしています。 JUnit 3.8.2でRMIサーバーを起動し、それらのテストを実行したいと思います。誰もこれをしましたか?

mainを使用してpojoで次のようなものを使用しています:

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

    } 


レジストリを一度だけ起動し、レジストリが実際に起動した場合にのみテストが実行されるように、これをjunitテストに変える最良の方法は何ですか? mainからのすべてのテストコードを含む1つのテストメソッドを持つテストクラスを持つことは避けたいと思います。

また、テストを書くときは何に注意すればよいですか? RMIテストの落とし穴はありますか?

役に立ちましたか?

解決

JDK 5以降を使用している場合は、JUnit 4.4にアップグレードすることをお勧めします。注釈は非常に役立ちます。

これも読むことをお勧めします。テストを実行するために別のメインクラスを記述する理由がわかりません。これは、TestRunnerが行うべきことではありませんか?

レジストリをセットアップで起動し、ティアダウンメソッドでシャットダウンします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top