Je dois tester les interactions entre 2 ou plusieurs clients Java dans un test complet de bout en bout.Comment puis-je tester les interactions entre 2 clients ou plus sur différentes machines virtuelles?
Sans les interfaces graphiques, idéalement, il devrait y avoir quelque chose de similaire à (syntaxe 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);
}
Le code ci-dessus est pas ce que je veux, car il rend les « apps » exécutées sur la même machine virtuelle. La solution que j'ai été capable de penser par moi-même était d'écrire une fausse main qui instancie le secondApps et écrit toutes ses sorties sur un fichier, le lance avec un appel système et vérifie ensuite le résultat mais il semble être une véritable exagération. De plus, avec une telle stratégie, il serait plus difficile (voire impossible) de tester également l'interface graphique.
Nous vous remercions de votre aide.