Quality Coding

How to Do UIViewController TDD


This screencast focuses on the question I get the most: “Do you do test-driven development for view controllers?” It’s clearly a roadblock for many people. This screencast should remove that roadblock.

It also answers the question, “Is it worth doing?”


  • Three types of unit test verification
  • View controller unit tests: the trick
  • TDD demo
  • How UIViewController TDD can actually help you code faster

…I did mess up something pretty big, and I don’t mean the nib and coding mistakes, which the unit tests successfully caught. I mean my failure to test the labels of the two buttons. I was so eager to show you how to test button behavior, that I forgot about how important it is to test button labels. So my apologies there, but I thought it was more important to get the information out than to try again.

Show notes:

See also: Testability, Information Hiding, and the Class Trying to Get Out, a follow-up discussion about whether to expose outlets and actions in the interface.

What questions do you have after watching this screencast? Leave a comment below.

Did you find this useful? Subscribe today to get regular posts on clean iOS code.

“Palette” photo by petra** (license)

About the Author Jon Reid

Jon is a coach and consultant on iOS Clean Code (Test Driven Development, unit testing, refactoring, design). He’s been practicing TDD since 2001. You can learn more about his background, or see what services he can bring to your organization.

follow me on:

Leave a Comment:

Add Your Reply