5

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

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

    import java.rmi.registry.*;

    ....

    //設定
    試す {

        java.rmi.registry.LocateRegistry.createRegistry(1099);
        System.out.println("RMI レジストリの準備ができました。");

        this.StartMyServer();

        // クライアントのセットアップ

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

        //ここでテスト

    } キャッチ (MyClientException 私) {

        System.out.println("MyClient が下降し、ブームが起こる");

    } キャッチ (MyServerException 私) {

        System.out.println("MyServer がダウンしてブームになる");

    キャッチ(例外e){

        System.out.println("RMI レジストリの開始時に例外が発生しました:");

    }


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

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

4

1 に答える 1

5

JDK 5 以降を使用している場合は、JUnit 4.4 にアップグレードすることをお勧めします。注釈は大きな助けになります。

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

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

于 2009-01-09T16:20:48.313 に答える