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 テストの落とし穴はありますか?