Create Seam

Can’t make changes without refactoring. Can’t refactor without tests. Can’t add tests without making changes. Learn how to break the cycle!

Practices of a Graceful Developer

There are some lessons that will serve you no matter what programming language or framework you're working in. Follow this garden path for diverse ins…

Rigorous Ruby

Design, verify, and safely refactor your Ruby code using mature testing disciplines and practices.

Re-Run Just the Tests That Failed

A test-driven development workflow is only effective when it gives you quick, meaningful feedback. Check out these power-user facilities for RSpec and…

Unroll Test Loops

Be wary of the temptation to DRY up testing code. As you'll see in this episode, a refactoring that might add value to to application code can actuall…

Sprout Class

In the conclusion of a three-part series, we discover the final piece of the "testing private methods" puzzle.

Testing with Coat Hangers

What happens when you try to TDD new functionality deep inside a private method? The resulting tests can feel terribly awkward and brittle.

Where do Private Methods Come From?

A question that I hear a lot is: "Do you test private methods? And if so, how?" In this, the first of a series, we'll talk about where private methods…

Rake Global Tasks

Rake isn't just for running tests. You can use Rake to organize all your favorite development automation tasks across ALL your projects. Find out how,…