• You are here:
  • Home »

Tools I’ve Made

​I wrote the following tools, and continue to use the Swift ones regularly. ​See which ones might help you.

Screen shot: Baby Steps Timer

​Baby Steps Timer

A ​bad piece of code you can use for refactoring exercises, originally created by David Tanzer. Can you add tests, and clean up the code?

  • ​Swift version
  • ​Objective-C version
Screenshot: Bowling Game slide

​Bowling Game TDD Exercise

​Learn Test-Driven Development by following the steps in this exercise, originally created by Robert Martin.


Blog posts:

  • ​Swift version
  • ​Objective-C version
Hamcrest logo

​OCHamcrest

​The Objective-C implementation of Hamcrest. ​It’s library of predefined matchers (which you can use in test assertions), and a framework for creating your own ​matchers.​


Blog posts:

  • ​Objective-C only
  • ​Assertions on steroids
  • Matchers are designed to be ​composable
Mockito logo

​OCMockito

​​The Objective-C implementation of Mockito​. It supports creation, verification and stubbing of mock objects.


Blog posts:

  • ​Objective-C only
Paint by Numbers example

​TDD Paint by Numbers

​​A “Paint by Numbers” ​TDD exercise ​originally created by Jeff Langr. We have provided the tests for you, all disabled. ​Your job is to do the rest: make the tests pass, then make your code clean. Sample solutions are provided.

  • ​Swift version
  • ​Objective-C version
Code Snippets

​Test-Oriented Code Snippets

​Code snippets to help you write test cases. ​Available to all new subscribers.

  • ​Swift
  • ​Objective-C
  • ​Xcode
  • ​AppCode
Emoji: Woman Sleuth

​ViewControllerPresentationSpy

​Unit test alerts, presented view controllers, and dismissed view controllers.


Blog posts:

  • ​Swift
  • ​Objective-C
XcodeCoverage logo

​XcodeCoverage

​​A simple way to generate reports of the Objective-C code coverage of your Xcode project. Generated reports include HTML and Cobertura XML.


Blog posts:

  • ​Objective-C coverage only
XcodeWarnings logo

​XcodeWarnings

​An xcconfig that enables lots of Xcode warnings.


Blog posts:

Custom XCTest templates

​X​CTest Templates

​Apple’s template fills test suites with cruft. By contrast, these test suite templates are sleek. They contain a single failing test, nothing else.


Blog posts:

  • ​Swift
  • ​Objective-C
  • ​Also works in AppCode
>