Yesterday I mentioned a talk by Mike Feathers about API design. One of the topic of API wrapping, which we do frequently here at Oasis Digital, for a variety of reasons.
By coincidence, today the question came up of whether we should wrap the API of Jemmy, a Swing GUI testing tool. Our natural inclination is to wrap. But there are oppossing forces as well. Here’s where I ended up:
- The Jemmy API is large, and thus tedious to wrap. (Which might be a good reason to wrap it…)
- We haven’t used Jemmy much yet, so we don’t have any real idea what subset of its API we will use.
- We haven’t done much GUI test automation yet, so we have little reason to think we know much about API design for that.
- There are developers “out there” who know how to use Jemmy. Perhaps we will hire one, and benefit from them already knowing how it works.
- Thus, we should start out using Jemmy as-is.
- Once we have a moderate body of code (enough to understand out use, but not so much that revamping it would be burdensome), review this decision and decide whether to wrap it.