In a previous entry I discussed why I prefer One Assertion Per Test. In that entry I give a few state based examples, but didn't address the topic of mocks. This entry is going to focus on how you can use mocks while maintaining focus on maintainability. Let's start with an example. require 'test/unit' require 'rubygems' require 'mocha' module Expectations class SuiteRunner attr_accessor :suite de