Лучшие практики для приложений JUnit и RMI, RMI Registry

Я хочу написать набор тестов системной интеграции для клиентского приложения RMI. Я хотел бы запустить сервер RMI в JUnit 3.8.2, а затем запустить эти тесты. Кто-нибудь это делал?

Я использую что-то подобное в pojo с main:


    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?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
5
0
3 585
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы используете JDK 5 или выше, я бы рекомендовал перейти на JUnit 4.4. Аннотации очень помогают.

Также рекомендую прочитать это. Я не понимаю, зачем вам писать отдельный основной класс для запуска тестов. Разве это не то, что должен делать TestRunner?

Я бы запустил реестр в настройке и отключил его методом разрыва.

Основное я не писал, это делал предыдущий разработчик. Это ручной "дымовой тест", который я портирую на junit

sal 10.01.2009 01:59

Другие вопросы по теме