Carlos points out a nice testing technique used by the Commons VFS folks:
What they developed was a test harness based on JUnit to test all the different implementations without having to rewrite all the tests for each implementation.
One set of unit tests will ensure that the FTP, SMB, JAR, etc. implementations all work correctly. We’re working on project with a very componentized architecture right now, and testing against the interfaces this way seems like a very useful idea. This won’t preclude doing white box test-first development of the implementations, though.