Unit testing the prequel
-
Upload
gil-zilberfeld -
Category
Technology
-
view
129 -
download
1
description
Transcript of Unit testing the prequel
@gil_zilberfeld
Gil Zilberfeld, Product Manager
Unit Testing – The Prequel
Jan 29th, 2013
@gil_zilberfeld
Prepare
• Know your tools
• Evaluate the risk
• Choose your partner
@gil_zilberfeld
Step 1: What to test
• What to test:• What you’re
working on• Bug or feature?• Logic
• What not to test:• Multithreading• Stored procedures• UI
@gil_zilberfeld
Step 2: Get ready
• Pick organization strategy• Create test projects• Remove fluff• VS I’m looking at you
@gil_zilberfeld
Step 3: Pick a scenario
• Scenario:• Context• Action• Success criteria
• Pick the simplest one
• Say it!• Name it!• Assert it!
@gil_zilberfeld
@gil_zilberfeld
How code looks
@gil_zilberfeld
@gil_zilberfeld
Simple pathtest
@gil_zilberfeld
@gil_zilberfeld
“Happy path”test
@gil_zilberfeld
Step 3: Pick a scenario
• Scenario:• Context• Logic• Success criteria
• Pick the simplest one
• Say it!• Name it!• Assert it!
@gil_zilberfeld
Step 4: Identify dependencies
• Read the code• Constructor
parameters• Fields• Statics• Global state
• Mocking strategy• None (Integration)• Hand-rolled• Interface based• Anything goes
@gil_zilberfeld
@gil_zilberfeld
Let’s play:Where are the dependencies?
@gil_zilberfeld
Step 5: Simplify design
• Automatic refactoring• Close down regions you’re not going to cover• Rename fields• Extract methods
• Manual refactoring works too• …but more risky
@gil_zilberfeld
Step 6: Here we go!
• ArrangeRun
Fail• Arrange
RunFail…..
• Success!
@gil_zilberfeld
Step 7: Next!
• Pick the next scenario
• Say it• Name it• Assert it
• Mutate the test setup
• ArrangeRun
Fail…
• Win!
@gil_zilberfeld
Congratulations!
• This is just the beginning• Lifetime improvement• Picking scenarios• Naming• Mocking• Refactoring• … and much more!
@gil_zilberfeld
www.typemock.com
typemock.com/blog
@typemock
www.gilzilberfeld.com
@gil_zilberfeld
Questions?