I have a distributed system with components spread across multiple boxes. They talk to each other using tcp or multicast. Each components interchanges messages with each other -
You can use STAF/STAX it has good capabilities/services for distributed testing scenarios like Client-Server, SAN etc. etc. Also there is one more Framework named Twister by Luxoft. This one is also brilliant.
I suppose there are different ways of doing it. I try to avoid integration testing as much as I can but at some point is needed ofcourse. This is just a suggestion what I would do:
Personally I think that calling objects from one distributed module into another in test methods, is not a good practice. Yes that would be an integration test, but I think it is very easy reliable.
Always have in mind the pyramid of testing, remember that integration tests and end to end tests can be very expensive. So choose wisely when to use them:
I come from the Java world, this following is just some extra information that I think is also related to the topic and might be of your interest:
Hope you find it useful.
You can checkout Zopkio : https://github.com/linkedin/Zopkio. Its an open source framework for functional and performance testing of distributed systems.
I'll give my answer for what we are doing with a distributed system written in Java. We have multiple linux daemons that are really wrappers around java programs that communicate with one another mainly through a database. So they don't send serialized messages back and forth. We use dbunit and spring-test for integration testing. With dbunit you basically load data, run your System Under Test(SUT) and then verify the database is in the correct state. spring-test makes it easy for spring based apps to load the application context while testing.
If you don't have a java based app then this might not be that useful. The framework selections are going to largely depend on your technology choices and architecture.