Testing the Multiverse*
It’s a basic principle of testing that minimizing dependencies will make you happier, faster, and more productive.
But what happens when you can’t?
If your code plugs into or extends another gem, comfortable isolation might be out of the question. Stubbing and careful design can carry you a ways, but eventually you need to actually test your code against those gems you’re building on.
Luckily, there are ways to reduce this pain. We’ll dig deep on creating a simple environment to check your work against multiple dependencies. We’ll see patterns that help avoid pulling your hair out when those dependencies change. We’ll even search around the raw edges, examining how to verify what your code does when it lands in an environment you haven’t tested.
There’s a multitude of gems out there to build on. Let’s see how we can test with them!
I've spoken at a number of conferences over the past two years, many of which are online at http://www.confreaks.com/presenters/1621-jason-clark. I also spoke last year at OS Bridge and loved it!
I fell in love with programming as a young boy watching my dad work in Clipper and dBase III (no, really). The obsession sparked there continues to this day. My current language crushes are Ruby and Haskell, and I work for New Relic on the Ruby Agent. When not at work, I enjoy experimenting with programming languages, cycling, homebrewing, and hanging out with my family.