5

我正在寻找为 RMI 客户端应用程序编写一组系统集成测试。我想在 JUnit 3.8.2 中启动 RMI 服务器,然后运行这些测试。有人做过吗?

我在主要的 pojo 中使用这样的东西:

    导入 java.rmi.registry.*;

    ……

    //设置
    尝试 {

        java.rmi.registry.LocateRegistry.createRegistry(1099);
        System.out.println("RMI 注册准备就绪。");

        this.StartMyServer();

        // 客户端设置

        我的客户 m = null;
        m = (MyClient) Naming.lookup("//MyHost/MyServer", m);

        // 这里测试

    } 赶上(MyClientException 我){

        System.out.println("MyClient 跌倒去繁荣");

    } 捕捉(MyServerException 我){

        System.out.println("MyServer 跌倒去繁荣");

    } 捕捉(异常 e){

        System.out.println("异常启动 RMI 注册表:");

    }


将其转换为 junit 测试的最佳方法是什么,以便注册表仅启动一次并且仅在注册表实际启动时才运行测试?我想避免使用一种测试方法的测试类,其中包含来自 main 的所有测试代码,这是我在来到这里之前发现自己正在做的事情。

另外,在编写测试时我应该注意什么?任何 RMI 测试陷阱?

4

1 回答 1

5

如果您使用的是 JDK 5 或更高版本,我建议升级到 JUnit 4.4。注释是一个很大的帮助。

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

我会在设置中启动注册表并以拆卸方法将其关闭。

于 2009-01-09T16:20:48.313 回答