JUnitおよびRMIアプリ、RMIレジストリのベストプラクティス
-
06-07-2019 - |
質問
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が行うべきことではありませんか?
レジストリをセットアップで起動し、ティアダウンメソッドでシャットダウンします。
所属していません StackOverflow