Our integration tests should be portable, meaning that if we shared our project, everyone would be able to run our tests on any platform without needing to install any framework or application. This is a very common issue when we test flows that have an SFTP outbound endpoint. In order to do an integration test of our flow, we need to start an SFTP server on our machine or use a public SFTP server, which implies adding network overhead to our tests.
A simple solution to portable SFTP testing is embedding an SFTP server into our tests. A good and really light weight framework to do so is Apache Mina.
Let’s suppose we want to test the following flow:
We want our test to look something like this:
With Apache Mina we can make this test portable by creating this class:
And calling it from our functional test:
Now you can share your flow test with the world.