Мне нужно протестировать взаимодействие между 2-мя и более 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);
}
Код выше не то, что я хочу, потому что это делает «приложения» работают на одной и той же VM.
Решение, которое я смог самостоятельно подумать, заключалось в том, чтобы написать фальшивую основную информацию, которая создает экземпляр secondApps и записывает все его выходные данные в файл, запускает его с системным вызовом, а затем проверяет результат, но, похоже, настоящий перебор. Более того, с такой стратегией было бы сложнее (если не невозможно) проверить также графический интерфейс.
Благодарим за помощь.