代码之家  ›  专栏  ›  技术社区  ›  sal

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

  •  5
  • sal  · 技术社区  · 17 年前

    我想为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:");
    
        } 
    
    
    

    把它转换成JUnit测试的最好方法是什么,这样注册表只启动一次,测试只在注册表实际启动时运行?我可以避免用一种测试方法来进行一个测试类,其中包含了来自主测试的所有测试代码,这就是我在来到这里之前所做的。

    另外,在编写测试时,我应该注意什么?有没有RMI测试?

    1 回复  |  直到 14 年前
        1
  •  5
  •   duffymo    14 年前

    如果您使用的是JDK5或更高版本,我建议您升级到JUnit4.4。注释是一个很大的帮助。

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

    我会在一个设置中启动注册表,然后在拆卸方法中关闭它。