42
My Road To Test Driven Development: A Story Gerard Sychay @oinkpug 08/19/2009

My Road To Test Driven Development

Embed Size (px)

DESCRIPTION

In which I give a short introduction to unit testing, and then outline the story that finally turned on the light bulb about real test-driven development and test first for me. The third part of the talk gives an introduction to Dependency Injection (DI), an integral part to unit testing.

Citation preview

Page 1: My Road To Test Driven Development

My Road To Test Driven

Development: A Story

Gerard Sychay@oinkpug

08/19/2009

Page 2: My Road To Test Driven Development

My name is Gerard Sychay.

Page 3: My Road To Test Driven Development

Zipscene.com

Page 4: My Road To Test Driven Development

Cincinnati Coworks

Page 5: My Road To Test Driven Development

Are you unit testing?

Page 6: My Road To Test Driven Development

Are you developing unit tests first?

Page 7: My Road To Test Driven Development

(Very) Short introduction to unit testing1.

“Discovering” Test Driven Development2.2.

Dependency Injection FTW!3.

Page 8: My Road To Test Driven Development

PHPUnit

(Very) Short introduction to unit testing1.

Page 9: My Road To Test Driven Development

(Very) Short introduction to unit testing1.

Page 10: My Road To Test Driven Development

(Very) Short introduction to unit testing1.

Page 11: My Road To Test Driven Development

“Red, green, refactor.”

Discovering Test Driven Development2.

Page 12: My Road To Test Driven Development

That’s nice, but…

Discovering Test Driven Development2.Discovering Test Driven Development2.

Page 13: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 14: My Road To Test Driven Development

Then, one day…

Discovering Test Driven Development2.

Page 15: My Road To Test Driven Development

Problem: Does this event “exist?”

Discovering Test Driven Development2.

Page 16: My Road To Test Driven Development

Discovering Test Driven Development2.Business Requirements:

1. If two events have the same name AND same location, they are the same event. Merge.

2. Else, if two events have the same location, AND they occur within 1 hour of each other, they are the same event. Merge.

Page 17: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 18: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 19: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 20: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 21: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 22: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 23: My Road To Test Driven Development

Discovering Test Driven Development2.Discovering Test Driven Development2.

Page 24: My Road To Test Driven Development

Discovering Test Driven Development2.Business Requirements:

3. To merge two events, for each field, keep the longer of the two fields. For DateTimes, keep the earlier occurrence.

Page 25: My Road To Test Driven Development

Discovering Test Driven Development2.

Page 26: My Road To Test Driven Development

Discovering Test Driven Development2.Discovering Test Driven Development2.

Page 27: My Road To Test Driven Development

Discovering Test Driven Development2.Discovering Test Driven Development2.

Page 28: My Road To Test Driven Development

“Is that bug really fixed?”

Discovering Test Driven Development2.

Page 29: My Road To Test Driven Development

“Hey, I thought that bug was fixed.”

Discovering Test Driven Development2.

Page 30: My Road To Test Driven Development

Discovering Test Driven Development2.Discovering Test Driven Development2.Discovering Test Driven Development2.

Page 31: My Road To Test Driven Development

Discovering Test Driven Development2.Discovering Test Driven Development2.

Page 32: My Road To Test Driven Development

Requirements Driven Development

Discovering Test Driven Development2.

Page 33: My Road To Test Driven Development

That’s nice, but…

Discovering Test Driven Development2.

Page 34: My Road To Test Driven Development

Dependency Injection FTW!3.

Page 35: My Road To Test Driven Development

Dependency Injection FTW!3.

Page 36: My Road To Test Driven Development

MVC, n’est pas?

Dependency Injection FTW!3.

Page 37: My Road To Test Driven Development

Dependency Injection FTW!3.

Page 38: My Road To Test Driven Development

Dependency Injection FTW!

Dependency Injection FTW!3.

Page 39: My Road To Test Driven Development

Dependency Injection FTW!3.Dependency Injection FTW!3.

Page 40: My Road To Test Driven Development

Dependency Injection FTW!3.Dependency Injection FTW!3.

Page 41: My Road To Test Driven Development

Business Requirements:

4. Profit!

Dependency Injection FTW!3.

Page 42: My Road To Test Driven Development

Thanks!Questions!Comments!

@hellogerardstraylightrun.net

© 2009. Some rights reserved.