我需要在完整的端到端测试中测试 2 个或更多 Java 客户端之间的交互。
理想情况下,如果没有 GUI,它应该类似于(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 上运行。
我能够自己想到的解决方案是编写一个假的 main 实例化 secondApps 并将其所有输出写入文件,通过系统调用启动它,然后检查结果,但这似乎是一个真正的矫枉过正。此外,使用这样的策略,测试 GUI 也会更加困难(如果不是不可能的话)。
谢谢您的帮助。