我正在为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的所有测试代码,这是我在来到这里之前发现的.
另外,在编写测试时应该注意什么?任何RMI测试都有问题吗?
解决方法:
如果您使用的是JDK 5或更高版本,我建议您升级到JUnit 4.4.注释是一个很好的帮助.
我还建议阅读this.我不明白为什么你要写一个单独的主类来运行测试.这不是TestRunner应该做的吗?
我在设置中启动注册表并在拆解方法中将其关闭.