I'm interested in learning test driven development (TDD) from both a theoretical and practical perspective. I work primarily with Ruby (using Sinatra for web projects) and Javascript. I'd be grateful for any learning resource recommendations, whether online or in book form. General tips also welcome!