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

6
我想为一个RMI客户端应用程序编写一组系统集成测试。我想在JUnit 3.8.2中启动RMI服务器,然后运行这些测试。有人做过吗?
我在一个带有main方法的POJO中使用类似以下代码:
    import java.rmi.registry.*;
....
//设置 try {
java.rmi.registry.LocateRegistry.createRegistry(1099); System.out.println("RMI注册表准备就绪。");
this.StartMyServer();
//客户端设置
MyClient m = null; m = (MyClient) Naming.lookup("//MyHost/MyServer", m);
//此处是测试
} catch (MyClientException me) {
System.out.println("MyClient出现错误");
} catch (MyServerException me) {
System.out.println("MyServer出现错误");
} catch (Exception e) {
System.out.println("启动RMI注册表时发生异常:");
}
最好的方法是将其转换为junit测试,以便注册表仅启动一次,并且只有在注册表实际启动时才运行测试。我不想有一个测试类,其中包含所有来自main方法的测试代码,这是我在来这里之前所做的事情。
另外,在编写测试时,应注意什么?有任何RMI测试要注意的问题吗?
1个回答

5
如果您正在使用JDK 5或更高版本,我建议升级到JUnit 4.4。注释非常有帮助。
我还建议阅读this。我不明白为什么要编写单独的主类来运行测试。这不是TestRunner应该做的吗?
我会在setup方法中启动注册表,并在teardown方法中关闭它。

我没有写主函数,之前的开发人员写了。这是一个手动的“冒烟测试”,我正在将其移植到JUnit。 - sal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接