Мне нужно проверить взаимодействие между двумя или более Java-клиентами в полном сквозном тесте.
В идеале без графического интерфейса это должно быть что-то похожее (синтаксис Junit):
@Test
public void EndToEndTest(){
App firstApp = new App();
App secondApp = new App();
String msg = "something";
firstApp.send(msg); //this method will magically send msg to secondApp
String msgReceived = secondApp.getLastMsg();
AssertEquals(msgReceived, msg);
}
Код выше не тот, который я хочу, потому что он заставляет «приложения» работать на той же виртуальной машине.
Решение, которое я смог придумать самостоятельно, заключалось в том, чтобы написать поддельный main, который создает экземпляр secondApps и записывает весь его вывод в файл, запускать его с помощью системного вызова, а затем проверять результат, но, похоже, это настоящее излишество. Более того, при такой стратегии было бы сложнее (если не невозможно) протестировать и графический интерфейс.
Спасибо за вашу помощь.