Java JUnit和RMI应用程序的最佳实践,RMI注册表

Java JUnit和RMI应用程序的最佳实践,RMI注册表,java,junit,rmi,rmiregistry,Java,Junit,Rmi,Rmiregistry,我希望为RMI客户端应用程序编写一组系统集成测试。我想在JUnit3.8.2中启动RMI服务器,然后运行这些测试。有人这样做过吗 我在pojo中使用了这样的东西,主要是: import java.rmi.registry.*; .... //setup try { java.rmi.registry.LocateRegistry.createRegistry(1099); System.out.println("RMI registr

我希望为RMI客户端应用程序编写一组系统集成测试。我想在JUnit3.8.2中启动RMI服务器,然后运行这些测试。有人这样做过吗

我在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:"); } 导入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 me){ System.out.println(“我的客户机掉下去了,滚起来了”); }catch(myserver异常me){ System.out.println(“MyServer掉下来转起来”); }捕获(例外e){ System.out.println(“异常启动RMI注册表:”); } 将此转换为junit测试的最佳方法是什么,这样注册表只启动一次,并且测试只在注册表实际启动时运行?我希望避免使用一个测试类和一个测试方法以及main中的所有测试代码,这就是我来这里之前所做的


另外,在编写测试时,我应该注意什么?如果您使用的是JDK5或更高版本,我建议您升级到JUnit4.4。注释是一个很大的帮助

我也推荐阅读。我不明白为什么要编写一个单独的主类来运行测试。这不是TestRunner应该做的吗


我会在安装程序中启动注册表,然后在拆卸方法中关闭它。

我没有编写main,之前的开发人员编写了main。这是我移植到junit的手动“烟雾测试”