How I've been doing TDD wrong for years

I've been doing TDD for a long time (about 8 years or so). I come from a .NET background but about 3-4 years ago I switched to Ruby and have been loving it since! I've seen massive benefits to using TDD through the years but there was always something that didn't quite feel right.

As the great Morpheus once said:

"What you know, you can't explain. But you feel it. You felt it your entire life. That there's something wrong with the world. You don't know what it is, but it's there. Like a splinter in your mind - driving you mad. It is this feeling that has brought you to me. Do you know what I'm talking about?"

I couldn't workout what the problem was, my tests felt like a straitjacket. Rather than setting me free they constrained me. Every code change broke a bunch of tests. I tried a number of things but couldn't crack it. Then, I had a true light bulb moment. In the space of a week, two talks and a book all said the same thing at the same time. I had the answer!

This talk is about my TDD journey, about what I was doing and why, about what the solution was and about what I do now. I'll show concrete Ruby code examples and hopefully help people short-circuit the TDD pains I've experienced.