Tools I’ve Made

I wrote the following tools, and use them regularly. Look through the list, and see what might help you.

See also: Books I Recommend

Bowling Game TDD KataBowling Game TDD Kata in Swift or Objective-C

Swift and Objective-C versions of the Bowling Game TDD Kata, designed to teach Test-Driven Development. Read about it in Xcode TDD Kata: Practice with the Bowling Game.


A library for writing test assertions, and a framework for creating your own assertions. The Objective-C version of Hamcrest.


A library for generating stubs and mocks. The Objective-C version of Mockito.


A library for unit testing UIAlertControllers in either Swift or Objective-C. Read about it in How to Test UIAlertControllers and Control Swizzling.

TDD Paint by NumbersTDD Paint by Numbers

A project started by technical coach Jeff Langr, the Name Normalizer is a “Paint by Numbers” TDD exercise where we have provided the tests for you, all disabled. You can enable each test one at a time, so we have done the hard work for you. Your job is to do the rest: make the test pass, then make your code clean. Sample solutions are provided.

Test-Oriented Code Snippets

Code snippets to help you write test cases. In Swift and Objective-C, for Xcode and AppCode. Available to all new subscribers.


An xcconfig that enables lots of Xcode warnings. Read about it in Xcode Warnings: Can You Turn Them Up to Eleven?.

XCTest templatesXCTest Templates

Apple’s template fills test suites with cruft I don’t want. By contrast, these test suite templates are sleek. They contain a single failing test, to verify that the suite has been wired up correctly. For both Swift and Objective-C.