Я хочу написать набор тестов системной интеграции для клиентского приложения 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, чтобы реестр запускался только один раз и тесты запускались только в том случае, если реестр действительно запускается? Мне не хотелось бы иметь тестовый класс с одним тестовым методом со всем тестовым кодом из main, что я и делал, прежде чем приехать сюда.
Кроме того, на что следует обращать внимание при написании моих тестов? Есть ли какие-либо ошибки тестирования RMI?